共用方式為


PFREE_DMA_ENGINE回呼函式 (hdaudio.h)

FreeDmaEngine 例程會釋放先前由呼叫 AllocateCaptureDmaEngineAllocateRenderDmaEngine所配置的 DMA 引擎。

FreeDmaEngine 例程的函式指標類型定義如下。

語法

PFREE_DMA_ENGINE PfreeDmaEngine;

NTSTATUS PfreeDmaEngine(
  [in] PVOID _context,
  [in] HANDLE Handle
)
{...}

參數

[in] _context

指定 HDAUDIO_BUS_INTERFACEHDAUDIO_BUS_INTERFACE_V2HDAUDIO_BUS_INTERFACE_BDL 結構之 Context 成員的內容值。

[in] Handle

處理識別 DMA 引擎。 這個句柄值是從先前呼叫 AllocateCaptureDmaEngineAllocateRenderDmaEngine取得。

傳回值

如果呼叫成功釋放 DMA 引擎,FreeDmaEngine 會傳回STATUS_SUCCESS。 否則,例程會傳回適當的錯誤碼。 下表顯示一些可能的傳回狀態代碼。

傳回碼 描述
STATUS_INVALID_HANDLE
表示 句柄 參數值無效。
STATUS_INVALID_DEVICE_REQUEST
表示數據流未處於重設狀態,或緩衝區仍配置給 DMA 引擎。

言論

此例程會釋放先前由呼叫 AllocateCaptureDmaEngineAllocateRenderDmaEngine 例程保留的 DMA 引擎。

此例程失敗,並在下列任一情況下傳回錯誤碼STATUS_INVALID_DEVICE_REQUEST:

  • 任何先前配置的 DMA 緩衝區都尚未釋放 (藉由呼叫 freeDmaBuffer FreeContiguousDmaBuffer)。
  • 數據流處於重設以外的狀態。
音訊驅動程式會呼叫此例程來關閉針腳(並終結數據流)。

要求

要求 價值
目標平臺 桌面
標頭 hdaudio.h (包括 Hdaudio.h)
IRQL <=DISPATCH_LEVEL

另請參閱

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2