_CopyPageTable


include vmm.inc

VMMcall _CopyPageTable, <LinPgNum, nPages, <OFFSET32 PageBuf>, flags>

mov     [Copied], eax           ; nonzero if copied, zero otherwise

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. Uses EAX, ECX, EDX, and Flags.

LinPgNum

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

Number of page-table entries to copy.

PageBuf

Address of the 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

Operation flags. Must be zero.

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.