Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
_PageDiscardPages
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vmm.inc
 
VMMcall _PageDiscardPages, <LinPgNum, VM, nPages, flags>
 
or      eax, eax            ; nonzero if discarded, zero if error
jz      not_discarded
 
The _PageDiscardPages service marks pages as no longer in use, allowing the
system to discard the pages. Subsequent attempts to access the page do not
cause the system to read the previous contents of the page from disk.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
LinPgNum   Specifies linear page number of the first page to discard. If
           this parameter is less than 110h or corresponds to a virtual
           machine high linear address, the VM parameter must specify a
           valid virtual machine handle. All pages of the specified range
           must be marked V86Pageable.
 
VM         Specifies a handle identifying the virtual machine containing the
           pages to discard.
 
nPages     Specifies the number of pages to discard.
 
flags      Specifies the operation flags. This parameter can be a
           combination of the following values:
 
           Value         Meaning
           ─────────────────────────────────────────────────────────────────
           PageZeroInit  Fills the specified pages with zeros when a
                         subsequent attempt to page in the pages is made.
                         This value only applies when the PageDiscard value
                         is also given. If this value is not given, the
                         content of the pages is undefined.
 
           PageDiscard   Marks pages for a full discard by clearing both the
                         P_ACC and P_DIRTY bits in the page table entries.
                         If this value is not given, this service only
                         clears the P_ACC bit in the page table entries.
 
           All other values are reserved.
 
Return Value
 
The EAX register contains a nonzero value if the service is successful.
Otherwise EAX contains zero indicating an error, such as an invalid range or
an invalid virtual machine handle.
 
Comments
 
This service ignores pages in the range which are not present or are locked.
This service affects only pages that are subject to demand paging.
 
Uses
 
EAX
 
                                      ♦