include vmm.inc VMMcall _LinPageUnLock, <HLinPgNum, nPages, flags> or eax, eax ; nonzero if unlocked, zero if error jz not_unlocked |
The _LinPageUnLock service unlocks one or more pages starting at the specified linear page number. This service is similar to the _PageUnLock service, but uses linear page numbers instead of memory handles.
HLinPgNum
Specifies the linear page number of the first page to unlock. A linear page number is a ring-0 linear address shifted right by 12 bits.
nPages
Specifies the number of pages to unlock.
flags
Specifies the operation flags. This parameter can be a combination of the following values:
Value | Meaning |
PageLockedIfDP | Unlocks pages only if the virtual page swap device use MS-DOS or BIOS functions to write to the hardware. If the virtual page swap device writes directly to the hardware, this service returns immediately without unlocking the pages. |
PageMarkPageOut | Marks pages for immediate swapping if this service sets the lock count for the pages to zero. This service marks the pages by clearing the P_ACC bit for each page. The PageMarkPageOut value should only be used if the pages are unlikely to be accessed for some time. |
All other values are reserved.
The EAX register contains a nonzero value if the unlock is successful. Otherwise, EAX contains zero to indicate an error, such as an invalid address range.
EAX