次の方法で共有


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

HDAudioBdlIsr ルーチンは、ストリームで IOC 割り込みが発生するたびに HD Audio バス ドライバーが呼び出す ISR です。 これは、次のように定義されるPHDAUDIO_BDL_ISR型の関数ポインターです。

構文

PHDAUDIO_BDL_ISR PhdaudioBdlIsr;

void PhdaudioBdlIsr(
  [in] VOID *Context,
  [in] ULONG InterruptBitMask
)
{...}

パラメーター

[in] Context

HD オーディオ バス ドライバーは、前の SetupDmaEngineWithBdl 呼び出しのコンテキスト パラメーターでクライアントが指定したのと同じコンテキスト値で ISR を呼び出します。 詳細については、PSETUP_DMA_ENGINE_WITH_BDLを参照してください。

[in] InterruptBitMask

interruptBitMask パラメーターには、割り込みの理由を示す HD オーディオ コントローラー デバイスのストリーム 状態レジスタのビットが含まれています。 次の表は、interruptBitMask の個々のビットの意味を示しています。

ビット番号 意味
31:5 未使用。
4 記述子エラー (DESE)。 バッファー記述子のフェッチ中にエラーが発生した場合、HD オーディオ コントローラーは DESE ビットを 1 に設定します。
3 FIFO エラー (FIFOE)。 FIFO エラー (出力ストリームでのオーバーランまたは入力ストリームでのアンダーラン) が発生した場合、HD オーディオ コントローラーは FIFOE ビットを 1 に設定します。
2 バッファー完了割り込み状態 (BCIS)。 バッファー記述子のコマンド バイトで IOC ビットが 1 に設定されている場合、HD オーディオ コントローラーは、バッファーの最後のサンプルが処理された後に BCIS ビットを 1 に設定します。
1:0 未使用。

HD オーディオ バス ドライバーは、未使用のビットを 0 に設定します。 IOC 割り込みが発生したと想定する代わりに、ISR は常に interruptBitMask パラメーターをチェックして、ストリーム エラーが発生したかどうかを判断する必要があります。 前の表に示した割り込み状態ビットの詳細については、Intel High Definition Audio Specification のストリーム ステータス レジスタの説明を参照してください。

FIFO サイズは、DMA エンジンが内部バッファーで一度に保持できる最大バイト数です。

ハードウェアの実装によっては、DMA エンジンの FIFO サイズを静的にするか、ストリーム形式の変更に応じて動的に変化させることができます。 FIFO サイズの詳細については、「Intel High Definition Audio Specification」を参照してください。

戻り値

何一つ

備考

呼び出し元は、非ページ プールからバッファー メモリと BDL を割り当てる必要があります。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー hdaudio.h (Hdaudio.h を含む)
IRQL DIRQL

関連項目

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h する