The NewMasterDmaChannel method creates a new instance of a bus-master DMA channel.
NTSTATUS
NewMasterDmaChannel(
OUT PDMACHANNEL *DmaChannel,
IN PUNKNOWN OuterUnknown,
IN PRESOURCELIST ResourceList OPTIONAL,
IN ULONG MaximumLength,
IN BOOL Dma32BitAddresses,
IN BOOL Dma64BitAddresses,
IN DMA_WIDTH DmaWidth,
IN DMA_SPEED DmaSpeed
);
NewMasterDmaChannel returns STATUS_SUCCESS if the call was successful. Otherwise, the method returns an appropriate error code.
Declared in portcls.h. Include portcls.h.
Parameters MaximumLength, Dma32BitAddresses, Dma64BitAddresses, DmaWidth, and DmaSpeed are similar in meaning to the members of the DEVICE_DESCRIPTION structure with the same names.
A WaveCyclic device with built-in bus-mastering DMA hardware is referred to as a master device. In contrast, a slave device lacks DMA hardware and has to rely on the system DMA controller to perform any data transfers that it requires. The NewMasterDmaChannel method creates a DMA-channel object for a master device. To create a DMA-channel object for a slave device, call the IPortWaveCyclic::NewSlaveDmaChannel method instead. For more information about master and slave devices, see IDmaChannel and IDmaChannelSlave.
The DmaChannel, OuterUnknown, and ResourceList parameters follow the reference-counting conventions for COM objects.
Callers of NewMasterDmaChannel must run at IRQL PASSIVE_LEVEL.
IPortWaveCyclic::NewSlaveDmaChannel, IDmaChannel, IDmaChannelSlave, IResourceList, DEVICE_DESCRIPTION