Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
VDMAD_Set_Virt_State
                                                     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
 
                                      ♦