include vdmad.inc
mov ebx, VMHandle
mov al, Flags
mov edi, OFFSET32 DDS
VxDcall VDMAD_Scatter_Lock
jc ErrorHandler
Attempts to lock all pages mapped to a DMA region and returns the addresses of those pages. Uses EDX, ESI, flags.
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. |
Upon returning, 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.