include vmm.inc mov esi, VM ; VM handle mov eax, [esi + CB_VM_Status] ; virtual machine status mov eax, [esi + CB_High_Linear] ; high linear address mov eax, [esi + CB_Client_Pointer] ; points to a Client_Reg_Struc mov eax, [esi + CB_VMID] ; virtual machine ID |
The control block for a virtual machine contains information and status for the virtual machine. Virtual devices can use the following symbols to access useful fields in the control block:
Offset | Description |
CB_VM_Status | Specifies the status for the virtual machine. It can be a combination of the following values: | ||
Value | Meaning |
VMStat_Awakening | Virtual machine is waking up after being blocked on a semaphore. | |||
VMStat_Background | Virtual machine runs in the background. | |||
VMStat_Blocked | Virtual machine is blocked on a semaphore. | |||
VMStat_Closing | Virtual machine has received a Close_VM message. | |||
VMStat_Creating | Virtual machine is being created. | |||
VMStat_Exclusive | Virtual machine is in exclusive mode. | |||
VMStat_High_Pri_Back | Virtual machine has high priority background execution. | |||
VMStat_Idle | Virtual machine has released its time slice. | |||
VMStat_Not_Executable | Virtual machine is partially destroyed. | |||
VMStat_PageableV86 | Virtual machine has pageable V86 memory (protected-mode application). The default behavior for one or more pages in | |||
Offset | Description |
CB_VM_Status (continued) | Value | Meaning |
VMStat_PageableV86 (continued) | V86 memory has been modified and the _GetV86PageableArray service returns at least one nonzero bit in the array. |
VMStat_PM_App | Virtual machine contains a protected-mode application. |
VMStat_PM_Exec | Virtual machine execution currently in a protected-mode application. |
VMStat_PM_Use32 | Virtual machine contains a 32-bit protected-mode application. |
VMStat_Suspended | Virtual machine is not scheduled. |
VMStat_TS_Sched | Virtual machine is scheduled by the time slicer. |
VMStat_V86IntsLocked | Virtual machine locks any V86 memory that cannot be paged. Locking regardless of the pager type has been enabled for the virtual machine. |
VMStat_VxD_Exec | Virtual machine has received a call from a virtual device. |
CB_High_Linear | Specifies the linear address in the VMM linear address space of the virtual machine memory. Virtual devices can add a V86 linear address to this value calculate the location of a virtual machine memory in the VMM address space. |
CB_Client_Pointer | Specifies the address of a Client_Reg_Struc structure containing the register values for the virtual machine. |
CB_VMID | Specifies the virtual machine identifier. |