每次打开任何音频属性对话框都需要 2 分 5 秒。没有其他任务需要花费不合理的时间。这是声音属性对话框特有的。如果我重新启动计算机,它会在第一天或第二天立即打开。
这可能是驱动程序问题。我有一块带声音输出的 AMD 显卡(通过 HDMI)、主板上的 Realtek 音频芯片、USB 麦克风和 USB 耳机。有没有办法确定其中哪一个出现问题?或者有没有办法找出在等待时是什么阻碍了进程?
答案1
http://www.overclock.net/t/903497/opening-playback-devices-is-slow建议在设备管理器中禁用音频设备。
編輯肖恩(原帖作者):
这篇文章似乎与此不太相关。他们的问题与交火和 HDMI 声音有关。不过,在设备管理器中禁用“AMD 高清晰度音频设备”对我来说确实有效。
答案2
我修复了它ATI HDMI 音频设备驱动程序,已在适用于 Windows 7 和 8.1 的 realtek ATI/AMD 7850 和 R9 270x 上进行了测试。
答案3
我遇到了同样的问题,更新 AMD 的音频驱动程序没有作用,事实上更新导致 HDMI 音频停止工作。
恢复到以前的驱动程序版本后,我注意到问题是由于在电视关闭时使用 HDMI 音频引起的。如果我记得在电视关闭时将其切换回“扬声器”,它就不会“坏掉”。
答案4
就我而言,停止 AudioSrv,然后禁用/启用 AMD HDMI 音频,最后恢复 AudioSrv 即可解决问题。
我甚至采取了一些 ProcMon 跟踪(正如 magicandre1981 所建议的那样),但唯一困难的发现是,窗口是通过发出以下命令打开的"C:\Windows\System32\rundll32.exe" C:\Windows\System32\shell32.dll,Control_RunDLL C:\Windows\System32\mmsys.cpl
看起来这个过程要经过HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render
AMD HDMI 设备,检查它们的 CLSID HKLM\SYSTEM\CurrentControlSet\Control\MediaCategories
(我猜是通过查询驱动程序?因为这些只在驱动程序 .inf 的 HDAudioInstall.e0VirtualEPOutputTopo 部分中定义)
... 最终在我的系统上停滞了大约 6 秒钟,并且像什么都没有发生一样继续进行,通过HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{6994AD04-93EF-11D0-A3CC-00A0C9223196}\##?#HDAUDIO#FUNC_01&VEN_1002&DEV_whatever
相关的 HDMI 拓扑条目;所以重复进行,直到所有 HDMI 引脚都通过。
编辑:所以,我今天又遇到了这个问题,我做了进一步的研究(这次是用 ProcExp),我甚至不确定这是否是对话框的问题。Rundll32 堆栈不仅出于某种原因加载了 AtihdW76.sys(驱动程序),而且还加载了一大堆其他的 HDAudBus.sys、portcls.sys、ks.sys、ksthunk.sys、MMDevApi.dll……当它顺利正常打开时,所有这些内容都不存在。
但最重要的是,问题似乎出在上游,因为如果我重新启动 AudioSrv(不触碰 AMD HDMI 设备),它也需要一分钟才能重新启动。有趣的是,即使停止后,svchost 中仍然有 2 个句柄。
编辑2:并且由于某种原因,启动和停止 HDMI 设备...也会在同一个容器中启动和停止许多 dhcp(是的,你没看错)实例。