◄Up► ◄Next► ◄Previous► ──────────────────────────────────────────────────────────────────────────── include vdmad.inc VxDcall VDMAD_Get_Virt_State The VDMAD_Get_Virt_State service allows a channel owner to determine the current virtual state of the channel. The virtual state consists of all the information necessary to physically program the DMA channel for a DMA transfer (linear address of target region, byte length of region, mode of transfer, and state of mask bit and software request bit) Parameter Description ──────────────────────────────────────────────────────────────────────────── EAX Specifies the DMA handle. EBX Specifies the virtual machine handle. Return Value If translation is enabled, the ESI register contains the high linear address of the user's DMA region. The high linear address is used so that the DMA can proceed even if a different virtual machine is actually running at the time of the transfer. If translation is not enabled, the ESI register contains the physical byte address programmed (shifted left 1, for word ports). The ECX register contains count in bytes. The DL register contains the mode. This is the same as the 8237 mode byte with channel number removed and the following DMA_masked and DMA_requested values set as appropriate: Value Meaning ──────────────────────────────────────────────────────────────────────────── DMA_masked Channel masked and not ready for a transfer DMA_requested Software request flag set The DH register contains the extended mode (ignored on non-PS2 machines that do not have extended DMA capabilities). Uses ESI, ECX, EDX, Flags ♦