include vmm.inc mov edi, OFFSET32 IOTable ; points to an I/O table VMMcall Install_Mult_IO_Handlers jnc installed ; carry flag clear if all procedures installed mov [BadPort], edx ; I/O port number that failed |
The Install_Mult_IO_Handlers service installs I/O callback procedures for one or more I/O ports.
This service is only available during initialization.
IOTable
Points to an I/O table created using the Begin_Vxd_IO_Table, End_Vxd_IO_Table, and Vxd_IO macros. For more information about the table, see the following “Comments” section.
The carry flag is clear if all callback procedures are installed for the specified ports. If the carry flag is set, the EDX register contains the number of the I/O port for which the procedure could not be installed.
This service repeatedly calls the Install_IO_Handler service until all entries in the specified I/O table have been installed.
A virtual device can create an I/O table using the Begin_Vxd_IO_Table, End_Vxd_IO_Table, and Vxd_IO macros. The following example shows a table containing three entries for ports 30, 31, and 32:
Begin_Vxd_IO_Table My_IO_Table
Vxd_IO 30,IO_Handler_1
Vxd_IO 31,IO_Handler_2
Vxd_IO 32,IO_Handler_1
End_Vxd_IO_Table My_IO_Table
Flags
Begin_Vxd_IO_Table, End_Vxd_IO_Table, Install_IO_Handler, Vxd_IO