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 音频总线驱动程序使用在上述 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 音频总线驱动程序将未使用的位设置为零。 ISR 必须始终检查 interruptBitMask 参数以确定流错误是否已发生,而不是假设发生了 IOC 中断。 有关上表中所示的中断状态位的详细信息,请参阅 Intel 高定义音频规范中流状态寄存器的说明。

FIFO 大小是 DMA 引擎可以随时在其内部缓冲区中保存的最大字节数。

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

返回值

没有

言论

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

要求

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

另请参阅

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h