Edit

Share via


Allocating DMA Engines

The HD Audio controller contains a fixed number of DMA engines. Each engine can perform scatter/gather transfers for a single render or capture stream.

Three types of DMA engines are available:

  • Render DMA engines, which can handle only render streams.

  • Capture DMA engines, which can handle only capture streams.

  • Bidirectional DMA engines, which can be configured to handle either render or capture streams.

When allocating a DMA engine for a render stream, the AllocateCaptureDmaEngine routine allocates a render DMA engine if one is available. If the supply of render DMA engines is exhausted, the routine allocates a bidirectional DMA engine if one is available.

Similarly, when allocating a DMA engine for a capture stream, the AllocateRenderDmaEngine routine allocates a capture DMA engine if one is available. If the supply of capture DMA engines is exhausted, the routine allocates a bidirectional DMA engine if one is available.

The AllocateXxxDmaEngine routines are available in both versions of the HD Audio DDI.