启用唤醒
在关闭编解码器之前,如果在编解码器处于关闭状态时发生状态更改事件,编解码器函数驱动程序通常允许编解码器唤醒系统。 对于音频编解码器,当用户将插头插入输入插孔或从插孔中拔出插头时,会触发此类事件。 对于调制解调器编解码器,当电话响铃以指示来电时,可能会发生状态更改事件。 有关状态更改事件的详细信息,请参阅 Intel HD 音频网站上的 Intel 高清音频规范。
为了准备关闭电源,函数驱动程序会先将编解码器配置为在发生状态更改事件时向 HD 音频总线控制器发出信号。 接下来,函数驱动程序将 IRP_MN_WAIT_WAKE 电源管理 IRP 发送到 HD 音频总线驱动程序,指示它从编解码器启用唤醒信号。 稍后,如果启用了唤醒信号,并且编解码器通过编解码器的 SDI 线路传输状态更改事件,控制器会向系统生成唤醒信号,并且总线驱动程序会完成 IRP_MN_WAIT_WAKE IRP 来通知函数驱动程序。
发生唤醒事件后,总线驱动程序会确定哪个编解码器生成了唤醒信号,并完成该编解码器上任何挂起 IRP_MN_WAIT_WAKE IRP。 但是,如果编解码器同时包含音频和调制解调器函数组,则总线驱动程序无法确定哪个函数组是唤醒信号的来源。 在这种情况下,函数驱动程序必须将自己的查询发送到编解码器,以验证唤醒信号的来源。