◄Up► ◄Next► ◄Previous► ──────────────────────────────────────────────────────────────────────────── include vdmad.inc VxDcall VDMAD_Set_Virt_State The VDMAD_Set_Virt_State service modifies the virtual state of a DMA channel. This service is used when a channel owner wants to change the virtual state of a channel from how the virtual machine programmed it. This might be used to split a DMA request into smaller pieces. Parameter Description ──────────────────────────────────────────────────────────────────────────── EAX Specifies the DMA handle. EBX Specifies the virtual machine handle ESI Specifies either a high linear address or a physical byte address. If translation is enabled, this parameter is the high linear address of the user's DMA region. A 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, this parameter specifies a physical byte address programmed (shifted left 1, for word ports). ECX Specifies the count in bytes. DL Specifies 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 DH Specifies the extended mode (ignored on non-PS2 machines that do not have extended DMA capabilities). Return Value This service has no return value. Uses Flags ♦