Share via


DMAAllocateChannel (Windows Embedded CE 6.0)

1/6/2010

This function prepares the system for a DMA operation on behalf of the target device and also returns a handle that can be used by DMAIssueTransfer.

Syntax

DMA_CHANNEL_HANDLE DMAAllocateChannel(
    PCE_DMA_ADAPTER pDmaAdapter,
    ULONG ulRequestedChannel,
  ULONG ulAddressSpace,
  PHYSICAL_ADDRESS phDeviceIoAddress
);

Parameters

  • pDmaAdapter
    [in] Pointer to a DMA adapter structure, populated after a successful return from DMAGetAdapter.
  • ulRequestedChannel
    [in] Specifies the channel number that the device driver wants to use. If the device driver does not care which channel number is used, the value DMA_CHANNEL_ANY should be used.
  • ulAddressSpace
    [in] A value of 0x0 indicates that phDeviceIoAddress is an address in memory and a value of 0x1 indicates that phDeviceIoAddress is in the I/O address space.
  • phDeviceIoAddress
    [in] Specifies the physical address of the device that DMA is working on. This physical address is a system address and should be the return value of a call to TranslateBusAddr.

Return Value

Returns a handle to a DMA adapter channel object on success. Returns NULL on failure. Extended error information can be obtained through a call to GetLastError.

Remarks

The user client driver that calls DMAAllocateChannel must also call DMAFreeChannel to release all resource allocated to the channel. Failure to call DMAFreeChannel results in a resource leak and the failure of future calls to DMAAllocateChannel.

Requirements

Header oaldma.h
Library CEDDK.lib
Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Reference

CEDDK Dynamic-Link Library DMA Functions
CEDDK Dynamic-Link Library DMA Structures