_LinPageUnLock

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.

Parameters

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.

Return Value

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.

Uses

EAX

See Also

_LinMapIntoV86, _LinPageLock, _PageUnLock