VDMAD_Scatter_Lock

include vdmad.inc

VxDcall VDMAD_Scatter_Lock


The VDMAD_Scatter_Lock service attempts to lock all pages mapped to a DMA region, and return the actual physical addresses of the pages.

Parameters

EBX

Specifies the virtual machine handle.

AL

Specifies the operation flags. The parameter can be one of the following values:

Value Meaning

0 Fills the DDS table with physical addresses and sizes of the physical regions that make up the DMA region.
1 Fills the DDS table with the actual page table entries.
2 Prevents not-present pages from being locked. This value is ignored if bit 0 is not set.

EDI

Points to the extended DDS (DMA Descriptor Structure) to receive the information.

Return Value

The carry flag is clear, and the zero flag is set if the entire region is locked. The zero flag is clear if only a portion of the region is locked. If the carry flag is set, nothing is locked.

The EDX register contains the number of table entries needed to describe whole region, and the DDS_size field specifies the number of bytes locked.

If the request was for page table copy (AL set to 1 or 3), then The ESI register contains an offset into first page for start of the region.

Uses

EDX, ESI, Flags