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 |