_Assign_Device_V86_Pages

include vmm.inc

VMMcall _Assign_Device_V86_Pages, <VMLinrPage, nPages, VM, flags>

or eax, eax ; nonzero if assigned, zero if error

jz not_assigned


The _Assign_Device_V86_Pages service assigns to a virtual device one or more pages of the V86 address space.

Parameters

VMLinrPage

Specifies the linear page number of the first page of V86 address space to assign. The page number must be in the range 0 through 10Fh.

nPages

Specifies the number of pages to assign. All pages to assign must be within the V86 address space. If a page is already assigned, this service returns an error value.

VM

Specifies a handle identifying a virtual machine. If this parameter is a valid handle, the assignments apply only to the specified virtual machine. If this parameter is zero, the assignments apply to all virtual machines.

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, EAX contains zero to indicate an error, such as a specified page already assigned or an invalid page range.

Comments

A virtual device can make global assignments at any time, including during device initialization. For global assignments, the VM parameter must be zero. The virtual device must not attempt to assign a page that is already assigned. A virtual device can make local assignments only after device initialization is complete.

Uses

EAX

See Also

_DeAssign_Device_V86_Pages