Control_Block

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.

See Also

Close_VM