_DeAssign_Device_V86_Pages

include vmm.inc

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

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

jz not_unassigned


The _DeAssign_Device_V86_Pages service frees a region in the V86 address space which was previously assigned using the _Assign_Device_V86_Pages service.

Parameters

VMLinrPage

Specifies the linear page number of the first page to free. The page number must be in the range 0 through 10Fh.

nPages

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

VM

Specifies a handle identifying a virtual machine. If this parameter is a valid handle, the service frees pages previously assigned to the virtual machine. If this parameter is zero, the service frees pages that were previously assigned 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 was successful. Otherwise, EAX contains zero to indicate an error such as a page in the range already freed or an invalid page range.

Comments

This service only works after device initialization is complete.

A virtual device must not attempt to free pages that have not yet been assigned, or attempt to globally free pages that were only locally assigned.

Uses

EAX

See Also

_Assign_Device_V86_Pages