2011-07-14 13:34

故障现象:windows系统下键盘或光驱无法使用,设备管理器里对应设备前有×××叹号,查看属性页Windows无法为此设备加载驱动程序(代码39)无法启用此设备(代码10)

转载评论:光驱和键盘属于标准设备,驱动也是系统inbox的。注册表异常后,导致设备管理器中查看时,设备前有叹号。我猜想问题的原因在于第三方的filter driver上,直观表现为注册表配置出错导致设备管理器和使用异常。

键盘的clsid一般是{4D36E96B-E325-11CE-BFC1-08002BE10318}

光驱的clsid一般是{4D36E965-E325-11CE-BFC1-08002BE10318}

 

比较浅的一个转载:

昨天把同事之前托我给修的U盘拿出来量产。

今天早上到公司,打开笔记本发现鼠标用不了了。。。。触控板还能用。还以为鼠标坏了,找同事拿个鼠标插上,同样没反应。重启系统N次也没用。所有的USB口都试过了,均无效。

在“我的电脑”图标上点了下右键,于是就想着是不是驱动挂了?结果在设备管理器里一看,还真是这样,所有的USB驱动全挂了。

于是立即重装主板驱动。可是,却发现即使重装了驱动,还是无效。

在设备管理器的usb设备的属性中,显示提示“由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备”。原来,是注册表配置的问题。

方法如:

“开始菜单”-“运行”-输入命令:regedit,打开系统注册表。依次展开下面的注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\

在这下面有很多用“{}”括起来的项,一个一个的点开,看右边有没有“通用串行总线控制器”这些文字,在右面窗口找到“upperfilter”项或“lowerfilter”项,并删除,然后进入设备管理器中把通用串行总线控制器下面的所有带叹号的设备都卸载掉。在设备管理器的菜单中,点“操作”-“扫描检测硬件改动”,让系统自动重装一下驱动即可。

问题解决。连系统都不用重启,鼠标能用了。摄像头也能用了。。。。

 

进一步讨论的一个转载(键盘问题,部分截取了原文):

系统Windows7,今天开机后发现在登录界面无法输入密码,再按CapsLock键,发现键盘灯也不亮。由于开机时硬盘有密码,而彼时密码输入是正常的,所以基本排除键盘物理损坏的可能,又重启到其他系统环境下,键盘均可正常录入,遂排除键盘本身的问题。
使用屏幕键盘进入系统,打开设备管理器,赫然发现键盘(设备名PS/2标准键盘)和触控板(设备名Synaptics PS/2 Port Touchpad)均带有×××感叹号,打开属性页,键盘属性页下系统提示“Windows无法为此设备加载驱动程序(代码39)”,触控板属性页下系统提示“无法启用此设备(代码10)”。

1.以管理员身份启动cmd,使用sfc /scannow扫描修复系统文件,然后重启。
重启归来后,键盘属性页提示已变为“无法启用此设备(代码10)”。
2.将设备管理器中失效的鼠标和触控板设备卸载(提示卸载时带“卸载驱动程序”的要打钩)。
3.将下列文件粘贴为reg文件,双击导入(提示未完全导入时无视)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\root#rdp_kbd]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\RDP_KBD\0000]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\CriticalDeviceDatabase\root#rdp_kbd]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\RDP_KBD\0000]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\root#rdp_kbd]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\RDP_KBD\0000]
"UpperFilters"=hex(7):6b,00,62,00,64,00,63,00,6c,00,61,00,73,00,73,00,00,00,00,\
00

4. 启动注册表编辑器(运行regedit.exe),以“kbdclass”作为关键字进行全注册表搜索,查找到字符串项“UpperFilter”时,检查其值是否仅有kbdclass.sys,如果不是,双击打开,将除kdbclass.sys之外的字符全部删除。重复此步骤直到将所有Upperfilter项修改完毕为止。
5. 在设备管理器中重新搜索设备,此时键盘即已恢复功能。
6. 下载Synaptics触控板驱动程序,安装后重启计算机,触控板即可恢复功能。

  事后回忆,当时在Upperfilter中除kbdclass.sys(WIndows的标准键盘驱动程序)之外,还有QQKeyboard.sys(QQ的键盘安全控件相关)、alidevice.sys(支付宝安全密码控件相关)以及TenpayKeyboard.sys(腾讯财付通安全密码控件相关),联想到近日曾用财付通进行支付,猜想可能是支付宝和财付通的Filter相互冲突造成了问题的出现,当然也可能不是。