PHDAUDIO_BDL_ISR回调函数 (hdaudio.h)

HDAudioBdlIsr 例程是每次流上发生 IOC 中断时,HD 音频总线驱动程序调用的 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 FIFOE) (FIFO 错误。 如果 FIFO 错误 (输出流上的溢出或输入流) 上的不足,则 HD Audio 控制器将 FIFOE 位设置为 1。
2 BCIS) (缓冲区完成中断状态。 如果在缓冲区描述符的命令字节中将 IOC 位设置为 1,则 HD 音频控制器在处理缓冲区的最后一个样本后将 BCIS 位设置为 1。
1:0 未使用。

HD 音频总线驱动程序将未使用的位设置为零。 ISR 必须始终检查 interruptBitMask 参数来确定是否发生了流错误,而不是假设发生了 IOC 中断。 有关上表中显示的中断状态位的详细信息,请参阅 Intel 高清晰度音频规范中流状态寄存器的说明。

FIFO 大小是 DMA 引擎在任意时间在其内部缓冲区中可以容纳的最大字节数。

根据硬件实现,DMA 引擎的 FIFO 大小可以是静态的,也可以随流格式的变化而动态变化。 有关 FIFO 大小的详细信息,请参阅 Intel 高清晰度音频规范。

返回值

备注

调用方必须从非分页池中分配缓冲区内存和 BDL。

要求

要求
目标平台 桌面
标头 hdaudio.h (包括 Hdaudio.h)
IRQL DIRQL

另请参阅

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h