PHDAUDIO_BDL_ISR hdaudio.h) (回呼函式
HDAudioBdlIsr 例程是 HD 音訊總線驅動程式每次在串流上發生 IOC 中斷時所呼叫的 ISR。 它是類型為 PHDAUDIO_BDL_ISR 的函式指標,其定義如下。
語法
PHDAUDIO_BDL_ISR PhdaudioBdlIsr;
void PhdaudioBdlIsr(
[in] VOID *Context,
[in] ULONG InterruptBitMask
)
{...}
參數
[in] Context
HD 音訊總線驅動程式會呼叫 ISR,其內容值與先前 SetupDmaEngineWithBdl 呼叫的內容參數中指定的用戶端相同。 如需詳細資訊,請參閱 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 Audio控制器會在處理緩衝區的最後一個樣本之後,將BCIS位設定為1。 |
1:0 | 未使用的。 |
HD 音訊總線驅動程式會將未使用的位設定為零。 ISR 必須一律檢查 interruptBitMask 參數,以判斷是否發生數據流錯誤,而不是假設發生 IOC 中斷。 如需上表所示中斷狀態位的詳細資訊,請參閱 Intel 高階音訊規格中的串流狀態緩存器描述。
FIFO 大小是 DMA 引擎可以隨時在其內部緩衝區中保存的最大位元元組數目。
視硬體實作而定,DMA 引擎的 FIFO 大小可以是靜態的,或隨著數據流格式變更而動態改變。 如需 FIFO 大小的詳細資訊,請參閱 Intel 高畫質音訊規格。
傳回值
無
備註
呼叫端必須從非分頁集區配置緩衝區內存和 BDL。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | hdaudio.h (包含 Hdaudio.h) |
IRQL | DIRQL |