Sys_Critical_Init


include vmm.inc

mov     ebx, SysVMHandle
mov     esi, OFFSET32 CommandTail
mov     eax, Sys_Critical_Init
VMMcall System_Control

Notifies the virtual device that Windows is starting. The system sends this message to direct virtual devices to carry out, as quickly as possible, the minimum number of tasks needed to prepare the device for enabled interrupts. This message is sent with interrupts disabled, and the virtual device must not enable interrupts while handling this message. The virtual device may modify all general registers and flags.

SysVMHandle

Handle of the system virtual machine.

CommandTail

Address of the command tail retrieved from the program segment prefix (PSP) of VMM32.VXD. The first byte in the command tail specifies the length in bytes of the tail.

While processing this message, virtual devices typically initialize any critical functions needed to support interrupts, and claim any V86 pages required to support the device. For example, the virtual display device claims the video memory. If a virtual device provides services, it should initialize any data associated with those services.

The virtual device must not use the Simulate_Int or Exec_Int services. Also it must not access conventional memory unless it is certain that the memory will be there. This means, for example, that scanning memory for the signature of a TSR is not allowed. Upper memory blocks are also off-limits because the V86MMGR device has yet to set them up.

See also Device_Init, Sys_Critical_Exit