次の方法で共有


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 Audio バス ドライバーは、前の SetupDmaEngineWithBdl 呼び出しのコンテキスト パラメーターでクライアントが指定したのと同じコンテキスト値で ISR を呼び出します。 詳細については、「 PSETUP_DMA_ENGINE_WITH_BDL」を参照してください。

[in] InterruptBitMask

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

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

要件

要件
対象プラットフォーム デスクトップ
Header hdaudio.h (Hdaudio.h を含む)
IRQL DIRQL

こちらもご覧ください

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h