VDMAD_Scatter_Unlock

include vdmad.inc

mov ebx, VMHandle
mov al, Flags
mov edi, OFFSET32 DDS
VxDcall VDMAD_Scatter_Unlock
jc ErrorHandler
 

Attempts to unlock all pages locked by a previous call to the VDMAD_Scatter_Lock service. Uses flags

VMHandle
Specifies the virtual machine handle.
Flags
Specifies the operation flags. The parameter can be one of the following values:
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.
4 Prevents pages from being marked as dirty. If bits 0 and 1 are set but 2 is clear, then not-present pages are not marked.

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

If bits 0 and 1 in the AL register are set, the table at the end of the DDS is not required to unlock the previously locked pages; otherwise, the table is not used and caller need not maintain the table after the lock call.