include vmm.inc VMMcall _Get_Device_V86_Pages_Array, <VM, <OFFSET32 ArrayBuf>, flags> or eax, eax ; nonzero if retrieved, zero if error jz not_retrieved |
The _Get_Device_V86_Pages_Array service retrieves a copy of the
assignment array used by the _Assign_Device_V86_Pages and
_DeAssign_Device_V86_Pages services. Virtual devices use the assignment array to determine which regions of the V86 address space are currently assigned, and which are available.
VM
Specifies a handle identifying the virtual machine to retrieve the assignment array for. If this parameter is zero, the service retrieves the global assignment array.
ArrayBuf
Points to the 36-byte buffer that receives the assignment array.
flags
Specifies the operation flags. This parameter must be set to 0.
The EAX register contains a nonzero value if the service is successful. Otherwise, it contains zero to indicate an error such as an invalid virtual machine handle.
The assignment array consists of 110h bits with each bit representing a single page in the V86 address space. If a bit is 1, the corresponding page is assigned. If a bit is 0, the corresponding page is not assigned.
The global assignment array does not indicate which pages are available. A page is available for global assignment only if it is neither globally nor locally assigned. To determine whether a page is available for global assignment, a virtual device must check the global assignment array, and then check the assignment arrays for each virtual machine.
EAX