• 原因

USB集线器选择性挂起,有助于节省电池电量,而某些鼠标是间接性需要电源,以及不同时间的电流需求不同,所以导致需求低时达到USB集线器挂机值,从而系统选择挂机USB

USB 选择性挂起功能允许集线器驱动程序挂起单个端口,而不会影响集线器上其他端口的操作。选择性悬挂 USB 设备在便携式计算机中特别有用,因为它有助于节省电池电量。许多设备,如指纹读取器和其他类型的生物识别扫描仪,只是间歇性地需要电源。在设备不使用时挂起此类设备可降低总体功耗。更重要的是,任何未有选择地挂起的设备都可能阻止 USB 主控制器禁用其驻留在系统内存中的传输计划。主机控制器对调度程序的直接内存访问 (DMA) 传输可以防止系统的处理器进入更深的休眠状态。

正常来说,这是在windows驱动编程中应避免这些问题,但是作为鼠标厂商可能有其他考虑,比如功耗等,并不是完全关闭了这个功能,我们可以通过系统来关闭这个功能。

方法一:通过设备管理器关闭,此方法最精准,但如果是网吧,主板型号过多,全都需要设置,不方便

对于 Microsoft Windows XP 的升级版本,已禁用选择性挂起。它适用于 Windows XP、Windows Vista 和更高版本的 Windows 的全新安装。若要为给定根集线器及其子设备启用选择性挂起支持,请在设备管理器中选中 USB 根集线器的“电源管理”选项卡上的复选框。

方法二:通过驱动文件来关闭,一般鼠标会自动驱动,所以通过此方法不方便

或者,可以通过在USB端口驱动程序的软件密钥下设置 HcDisableSelectiveSuspend 的值来启用或禁用选择性挂起。值为 1 将禁用选择性挂起,值为 0 将启用选择性挂起。例如,Usbport.inf 中的以下行禁用 Hydra OHCI 控制器的选择性挂起:

[OHCI_NOSS.AddReg.NT]
HKR,,"HcDisableSelectiveSuspend",0x00010001,1

方法三:通过注册表关闭,最为方便,建议使用此方法,复制下列文本保存为 123.reg 双击导入即可

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}]

"Class"="USB"

@="通用串行总线控制器"

"Icon"="-20"

"NoInstallClass"="1"

"TroubleShooter-0"="hcp://help/tshoot/tsUSB.htm"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0000]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0001]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0002]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0003]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0004]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0005]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0006]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0007]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0008]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0009]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0010]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0011]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0012]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0013]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0014]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0015]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0016]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0017]
"HcDisableSelectiveSuspend"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0018]
"HcDisableSelectiveSuspend"=dword:00000001