PFREE_DMA_BUFFER_WITH_NOTIFICATION コールバック関数 (hdaudio.h)

FreeDmaBufferWithNotification ルーチンは、AllocateDmaBufferWithNotificationの呼び出しによって以前に割り当てられた DMA バッファーを解放します。

FreeDmaBufferWithNotification ルーチンの関数ポインター型は、次のように定義されます。

構文

PFREE_DMA_BUFFER_WITH_NOTIFICATION PfreeDmaBufferWithNotification;

NTSTATUS PfreeDmaBufferWithNotification(
  [in] PVOID _context,
  [in] HANDLE Handle,
  [in] PMDL BufferMdl,
  [in] SIZE_T BufferSize
)
{...}

パラメーター

[in] _context

HDAUDIO_BUS_INTERFACE_V2 構造体の Context メンバーのコンテキスト値を指定します。

[in] Handle

DMA エンジンを識別するハンドル。 このハンドル値は、AllocateCaptureDmaEngine または AllocateRenderDmaEngine 以前の呼び出しから取得されました。

[in] BufferMdl

バッファー MDL へのポインター。 この値は、AllocateDmaBufferWithNotification の以前の呼び出しから取得されました。

[in] BufferSize

解放するバッファーのサイズ。 この値は、AllocateDmaBufferWithNotification の以前の呼び出しから取得されました。

戻り値

呼び出しが成功した場合、FreeDmaBufferWithNotification はSTATUS_SUCCESSを返します。 それ以外の場合、FreeDmaBufferWithNotification は適切なエラー コードを返します。 次の表は、考えられるリターン エラー コードの一部を示しています。

リターン コード 形容
STATUS_UNSUCCESSFUL
呼び出し元が高すぎる IRQL で実行されていることを示します。
STATUS_INVALID_HANDLE
パラメーター値 ハンドルが無効であることを示します。
STATUS_INVALID_DEVICE_REQUEST
ストリームがリセット状態ではないこと、または DMA エンジンに現在バッファーが割り当てられていないことを示します。

備考

FreeDmaBufferWithNotification ルーチンは、AllocateDmaBufferWithNotification ルーチンと共に使用されます。 これら 2 つのルーチンは、HD オーディオ DDI のHDAUDIO_BUS_INTERFACE_V2 バージョンでのみ使用できます。

FreeDmaBufferWithNotification の呼び出し元は、IRQL PASSIVE_LEVELで実行されている必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー hdaudio.h (Hdaudio.h を含む)
IRQL PASSIVE_LEVEL

関連項目

AllocateCaptureDmaEngine

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

HDAUDIO_BUS_INTERFACE_V2