IDmaChannelSlave::Start method

The Start method starts a subordinate DMA object.

Syntax


NTSTATUS Start(
  [in] ULONG   MapSize,
  [in] BOOLEAN WriteToDevice
);

Parameters

MapSize [in]

Specifies the number of bytes of the allocated buffer that are to be mapped. The map size must not exceed the size of the buffer allocated in the call to IDmaChannel::AllocateBuffer.

WriteToDevice [in]

Specifies the direction of data movement. If TRUE, the data is to be moved from the buffer to the device. If FALSE, the data is to be moved from the device to the buffer.

Return value

Start returns STATUS_SUCCESS if the call was successful. Otherwise, the method returns an appropriate error code. If the caller attempts to start a channel that is already started, the method returns immediately with error code STATUS_UNSUCCESSFUL.

Remarks

The method first sets up map registers to map the first MapSize bytes of the allocated buffer for the adapter object. Next, the method starts a DMA transfer of the number of bytes specified in MapSize.

For more information about this method, see IDmaChannel::BufferSize and IDmaChannelSlave::ReadCounter.

Requirements

Target platform

Universal

Header

Portcls.h (include Portcls.h)

IRQL

PASSIVE_LEVEL

See also

IDmaChannel::AllocateBuffer
IDmaChannel::BufferSize
IDmaChannelSlave::ReadCounter

 

 

Send comments about this topic to Microsoft

Show: