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.
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.
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.
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.
EAX