PFREE_DMA_ENGINE コールバック関数 (hdaudio.h)
ルーチンは FreeDmaEngine
、 AllocateCaptureDmaEngine または AllocateRenderDmaEngine の呼び出しによって以前に割 り当てられた DMA エンジンを解放します。
ルーチンの関数ポインター型 FreeDmaEngine
は、次のように定義されます。
構文
PFREE_DMA_ENGINE PfreeDmaEngine;
NTSTATUS PfreeDmaEngine(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
パラメーター
[in] _context
HDAUDIO_BUS_INTERFACE、HDAUDIO_BUS_INTERFACE_V2、または HDAUDIO_BUS_INTERFACE_BDL 構造体の Context メンバーのコンテキスト値を指定します。
[in] Handle
DMA エンジンを識別するハンドル。 このハンドル値は、 AllocateCaptureDmaEngine または AllocateRenderDmaEngine の以前の呼び出しから取得されました。
戻り値
FreeDmaEngine
は、呼び出しが DMA エンジンの解放に成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、ルーチンは適切なエラー コードを返します。 次の表は、可能な戻り状態コードの一部を示しています。
リターン コード | 説明 |
---|---|
|
ハンドル パラメーターの値が無効であることを示します。 |
|
ストリームがリセット状態ではないこと、または DMA エンジンにバッファーがまだ割り当てられていることを示します。 |
注釈
このルーチンは、 AllocateCaptureDmaEngine または AllocateRenderDmaEngine ルーチンの呼び出しによって以前に予約されていた DMA エンジン を 解放します。
このルーチンは失敗し、次のいずれかの状況でSTATUS_INVALID_DEVICE_REQUESTエラー コードを返します。
- 以前に割り当てられた DMA バッファーが解放されていません ( FreeDmaBuffer または FreeContiguousDmaBuffer を呼び出すことによって)。
- ストリームがリセット以外の状態です。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | hdaudio.h (Hdaudio.h を含む) |
IRQL | <=DISPATCH_LEVEL |