Declare_Virtual_Device

include vmm.inc

Declare_Virtual_Device Name, MajorVer, MinorVer, CtrlProc, DeviceNum,

InitOrder, V86Proc, PMProc


The Declare_Virtual_Device macro defines the name, device number, control procedure, and other attributes of a virtual device. Every virtual device must use the Declare_Virtual_Device macro.

Parameters

Name

Specifies the name of the virtual device.

MajorVer

Specifies the major version number for the virtual device.

MinorVer

Specifies the minor version number for the virtual device.

CtrlProc

Specifies the control procedure for the virtual device. The control procedure handles all system control messages sent to the virtual device. For most virtual devices, this parameter is the name of the procedure created by the Begin_Control_Dispatch macro.

DeviceNum

Specifies the device identifier for the virtual device. If the virtual device replaces an existing virtual device, the device identifier must be one of the following:

Value Meaning

APM_Device_ID Power management
BiosHook_Device_ID BIOS interrupt hook
BIOSXlat_Device_ID BIOS translation
BlockDev_Device_ID Block devices
Debug_Device_ID Debug device
DOSMGR_Device_ID MS-DOS manager
DOSNET_Device_ID MS-DOS networks
EBIOS_Device_ID EBIOS
Int13_Device_ID Interrupt 13h hook
MCA_POS_Device_ID MCA_POS device
PageFile_Device_ID Paging file
PageSwap_Device_ID Page swap
Parity_Device_ID Parity
Reboot_Device_ID Restart
SCSI_Device_ID SCSI device
SCSIFD_Device_ID SCSI FastDisk device
SHELL_Device_ID 386 enhanced-mode Windows shell
TSRLoad_Device_ID TSR instance utility
Undefined_Device_ID Reserved; not in use
V86MMGR_Device_ID V86 mode memory manager
VCD_Device_ID Communications ports
VDD2_Device_ID Secondary display adapter
VDD_Device_ID Display adapter
VDMAD_Device_ID DMA
VFD_Device_ID Floppy disk
VKD_Device_ID Keyboard
VMCPD_Device_ID Math coprocessor
VMD_Device_ID Mouse or pointing device
VMM_Device_ID Reserved; do not use
VMPoll_Device_ID Virtual machine polling
VNETBIOS_Device_ID Network BIOS
VPD_Device_ID Printer ports
VPEND_Device_ID Pen device
VPICD_Device_ID Programmable interrupt controller
VPROD_Device_ID Profiling
VSD_Device_ID Sound adapter
VTD_Device_ID Timer
WINDEBUG_Device_ID Windows debugging
WINLOAD_Device_ID Windows loader

If the type of virtual device is new, a new OEM virtual device identifier must be explicitly requested from Microsoft. For more information, see the Microsoft Windows Installation and Update Guide.

InitOrder

Specifies when the virtual device should be initialized relative to other virtual devices. For an existing device type, this parameter can be one of the following values:

APM_Init_Order BiosHook_Init_Order BIOSXlat_Init_Order BlockDev_Init_Order Debug_Init_Order DOSMGR_Init_Order DOSNET_Init_Order EBIOS_Init_Order Int13_Init_Order MCA_POS_Init_Order PageFile_Init_Order PageSwap_Init_Order Parity_Init_Order Reboot_Init_Order SCSIFD_Init_Order SCSIMaster_Init_Order SHELL_Init_Order Undefined_Init_Order V86MMGR_Init_Order VCD_Init_Order VDD_Init_Order VDMAD_Init_Order VFD_Init_Order VKD_Init_Order VMCPD_Init_Order VMD_Init_Order VMM_Init_Order VMPoll_Init_Order VNETBIOS_Init_Order VPD_Init_Order VPICD_Init_Order VPROD_Init_Order VSD_Init_Order VTD_Init_Order WINDEBUG_Init_Order WINLOAD_Init_Order

V86Proc

Specifies the V86-mode API procedure. This procedure processes any calls to the virtual device made by V86-mode applications running in a virtual machine. This parameter is optional.

PMProc

Specifies the protected-mode API procedure. This procedure processes any calls to the virtual device made by protected-mode applications running in a virtual machine. This parameter is optional.

Return Value

This macro has no return value.

See Also

Begin_Control_Dispatch