_Get_Device_V86_Pages_Array

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.

Parameters

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.

Return Value

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.

Comments

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.

Uses

EAX

See Also

_Assign_Device_V86_Pages, _DeAssign_Device_V86_Pages