_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

Frees a region in the V86 address space which was previously assigned using the _Assign_Device_V86_Pages service. Uses EAX, ECX, EDX, and Flags.

VMLinrPage

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

nPages

Number of pages to free. The service returns an error if the page range does not fall entirely within the V86 address space, or if any page in the range is not assigned.

VM

Handle of a virtual machine, or zero. If this parameter is a valid handle, the assigned pages are freed in the context of the specified virtual machine. If this parameter is zero, the page assignments are freed globally.

flags

Operation flags. Must be 0.

This service only works after device initialization is complete.

A virtual device must not attempt to free pages that have not been assigned, or attempt to globally free pages that were only assigned in the context of a specific virtual machine.

See also _Assign_Device_V86_Pages