Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
_CopyPageTable
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vmm.inc
 
VMMcall _CopyPageTable, <LinPgNum, nPages, <OFFSET32 PageBuf>, flags>
 
mov     [Copied], eax           ; nonzero if copied, zero otherwise
 
The _CopyPageTable service copies one or more page-table entries to the
specified buffer. Virtual devices, such as the virtual DMA device, use this
service to analyze the mapping of linear to physical addresses.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
LinPgNum   Specifies the number of the first page table entry to copy. This
           parameter must be in the range 0 through 0FFFFFh. Numbers in the
           range 0 through 10Fh specify pages in the 1 megabyte V86 address
           space of the current virtual machine. Page numbers for other
           virtual machines can be computed using the CB_High_Linear field
           in the control block of each virtual machine.
 
nPages     Specifies the number of page table entries to copy.
 
PageBuf    Points to buffer to receive the page table entries. This buffer
           must be large enough to receive the specified number of entries.
           Each entry is 4 bytes.
 
flags      Specifies the operation flags. This parameter must be set to 0.
 
Return Value
 
The EAX register contains a nonzero value if the copy is successful.
Otherwise, it contains zero indicating that at least one of the specified
page table entries was in a region where the corresponding page directory
entry is not present.
 
Comments
 
This service copies the page table, so writing to the buffer does not affect
the content of the actual page table. The system does not update the buffer
when changes to the actual page table are made, so no guarantees are made
about the length of time the information in the buffer remains accurate.
 
Uses
 
EAX
 
                                      ♦