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 |