VDMAD_Scatter_Unlock

include vdmad.inc

VxDcall VDMAD_Scatter_Unlock


The VDMAD_Scatter_Unlock service attempts to unlock all pages locked by a previous call to the VDMAD_Scatter_Lock service.

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.
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.

EDI

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

Return Value

The carry flag is clear if the lock counts have been decremented. If no other virtual devices had pages locked, the pages have been unlocked. The carry flag is set if the memory was not locked.

Comments

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.

Uses

Flags