欢迎来到老马的领地~ 这是“压风式散热底座”发明者的个人网站:) 本人QQ:80524554,用户群1:562279766
先上结论:

导入以下内容就行了(不确定在别人的电脑上是不是这样,但我这里确实解决了):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\usbhub\Performance]
"First Counter"=dword:00000000
"First Help"=dword:00000000

这两天苦想方案,没有头绪.

无意识状态,突然脑抽想点开日志来瞄瞄.

结果打开一看,好家伙,应用程序日志里,一大堆红叉叉,仔细一看,全是2001错误,一分钟一个shocked.gif

无法读取 usbperf\Performance 注册表项下的“First Counter”值。数据中返回状态代码。

http://www.m5home.com/blog//uploadfiles/20210113001_41421.gif


想着这应该不是个大问题,就随手在GOOGLE上一搜,结果试了一圈,都不能解决问题.

我寻思着,既然是找不到这个值,那说明这个值没有了,我给你创建一个行不?smile.gif

搜了一下注册表里usbperf项,一下子就找到了,路径如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\usbperf

它下面也没有Performance子项,那So easy,创建就完了呗!

然后再顺手创建个First Counter值,类型嘛,既然是值,DWORD应该没问题.

两下搞定,再清空日志,等一分钟后.....居然还是一样的日志???shocked.gif

还是找不到First Counter,WIN7你瞎了么??smile.gif

这下可真是头大了,想了一下,极有可能这个日志本身有BUG,也就是说它并未报告出正确的注册路径!也就是说根本不是usbperf\Performance这个项!

没办法,先搜usbperf项吧,结果services分支下就此一家;

那搜Performance吧,因为这多半是系统服务里的事,所以只需要搜CurrentControlSet分支就行了.

结果搜到一大堆带有Performance子项的项,研究了一下,很多都是有First Counter值的,类型猜对了,确实是DWORD的,但这些不少,一个一个排查太慢,于是我想了一下,既然日志里是"usb"perf,那应该是与USB相关的,就着重找带有USB的项,结果还真给我找着了....带usb的带Performance子项的,还没有First Counter值的,就一个,usbhub,一击即中!cool.giflol.gif

但天知道是不是它...试试先.

创建了First Counter值,类型DWORD,嗯,清空日志,等一分钟看看.

.....瞄一下群里,瞄一下手机,一下子就过去了五六分钟shocked.gif

日志里刷新一下看看......嗯,一片大红......擦,不对啊,咋还红叉叉?

这下真没招了,除了上面的usbperf项,就只有这个usbhub项了,就这两个符合又带USB,又没有First Counter值的条件....

正准备放弃,余光瞄到详情那里,好象有哪里不一样?定睛一看:

无法读取 usbperf\Performance 注册表项下的“First Help”值

喵喵喵?原来我成功了呀!lol.gif

迅速翻到usbhub\Performance下,新建一个First Help的DWORD值,清空日志,一气呵成!!这次可是盯着秒针的!

当一分钟后,我立刻刷新日志--------------空的!!!!!!!!!

不要轻敌!再等一分钟!

当再次一分钟后,刷新!空的!!cool.gif

成功了!!!

当然,这还没完,我得重现这问题才行.

马上以迅雷不及掩耳盗铃的速度,导出usbhub\Performance,再把下面的First Counter与First Help值整个删除,清空日志.

盯!!一分钟!!刷新日志!!

熟悉的红叉叉又出现了!!!

双击导出的注册表文件,导入!

清空日志!盯!!一分钟!!刷新日志!!空!!

一分钟!!刷新日志!!空!!

空!!!!!

至此!完结!!!lol.gif

天知道微软咋会留这个不痛不痒的BUG出来!天知道日志里咋会牛头不对马嘴!还好我运气好,解决了!

写这么多,主要还是因为不确定这两个注册表项是否适用于别人遇到的相同问题,因此把整个推测过程与思路都放上来,这样可以方便同样问题的人解决自己的问题,这砖,我抛出来了!!cool.gif
4 条评论
# 1: Lusaka said:
2022-02-15 10:52:28
# 2: bili_uid24022863 said:
2025-08-30 21:04:06
今天也遇到这个问题了,看了下确实能这么解决,真是屎山,userperf指的是usbperf.dll,而这个dll出现在HKLM\SYSTEM\CurrentControlSet\Services\usbhub\Performance\Library,结果是日志里说usbperf\Performance,实际上是usbhub\Performance。然后抓了一下调用栈,是wmiprvse.exe在遍历这些Performance,然后这个没有First Counter的话会报这个错。
# 3: bili_uid24022863 said:
2025-08-30 21:06:03
顺便调用栈
"Frame","Module","Location","Address","Path"
"0","ntoskrnl.exe","RtlEqualUnicodeString + 0x2260","0xfffff802ac81ce60","C:\windows\system32\ntoskrnl.exe"
"1","ntoskrnl.exe","ObOpenObjectByName + 0x7447","0xfffff802ac88b207","C:\windows\system32\ntoskrnl.exe"
"2","ntoskrnl.exe","setjmpex + 0x34a3","0xfffff802ac5dabb3","C:\windows\system32\ntoskrnl.exe"
"3","ntdll.dll","ZwQueryValueKey + 0xa","0x7ffff995082a","C:\windows\SYSTEM32\ntdll.dll"
"4","KERNELBASE.dll","RegOpenKeyExW + 0x4bf","0x7ffff68a3e7f","C:\windows\system32\KERNELBASE.dll"
"5","KERNELBASE.dll","RegQueryValueExA + 0x125","0x7ffff68c0155","C:\windows\system32\KERNELBASE.dll"
"6","usbperf.dll","OpenUsbPerformanceData + 0x124","0x7ffff3d71348","C:\Windows\System32\usbperf.dll"
"7","advapi32.dll","PerfRegQueryInfoKey + 0x755","0x7ffff9323f45","C:\windows\SYSTEM32\advapi32.dll"
"8","advapi32.dll","PerfRegQueryInfoKey + 0x495","0x7ffff9323c85","C:\windows\SYSTEM32\advapi32.dll"
"9","advapi32.dll","QueryServiceConfig2W + 0x6c9","0x7ffff9322119","C:\windows\SYSTEM32\advapi32.dll"
"10","KERNELBASE.dll","RegDisablePredefinedCacheEx + 0x9f1","0x7ffff68f58e1","C:\windows\system32\KERNELBASE.dll"
"11","KERNELBASE.dll","RegQueryValueExW + 0xe9","0x7ffff68a40b9","C:\windows\system32\KERNELBASE.dll"
"12","pdh.dll","PdhOpenQueryW + 0x328","0x7fffec9d201c","C:\windows\SYSTEM32\pdh.dll"
"13","pdh.dll","PdhOpenQueryW + 0x1405","0x7fffec9d30f9","C:\windows\SYSTEM32\pdh.dll"
"14","pdh.dll","PdhValidatePathW + 0xd0b","0x7fffeca0c6b3","C:\windows\SYSTEM32\pdh.dll"
"15","pdh.dll","PdhEnumObjectsHW + 0x175","0x7fffeca09371","C:\windows\SYSTEM32\pdh.dll"
"16","pdh.dll","PdhEnumObjectsW + 0x155","0x7fffeca09525","C:\windows\SYSTEM32\pdh.dll"
"17","WmiPerfClass.dll","DllUnregisterServer + 0x328","0x7fffecc415d8","C:\Windows\System32\wbem\WmiPerfClass.dll"
"18","WmiPerfClass.dll","DllUnregisterServer + 0xba7","0x7fffecc41e57","C:\Windows\System32\wbem\WmiPerfClass.dll"
"19","WmiPerfClass.dll","WmiPerfClass.dll + 0x7040","0x7fffecc37040","C:\Windows\System32\wbem\WmiPerfClass.dll"
"20","WmiPerfClass.dll","WmiPerfClass.dll + 0x7ede","0x7fffecc37ede","C:\Windows\System32\wbem\WmiPerfClass.dll"
"21","WmiPerfClass.dll","WmiPerfClass.dll + 0x10ca2","0x7fffecc40ca2","C:\Windows\System32\wbem\WmiPerfClass.dll"
"22","wmiprvse.exe","wmiprvse.exe + 0x1ed2f","0x7ff759cfed2f","C:\windows\system32\wbem\wmiprvse.exe"
"23","wmiprvse.exe","wmiprvse.exe + 0x1e8f1","0x7ff759cfe8f1","C:\windows\system32\wbem\wmiprvse.exe"
"24","RPCRT4.dll","NdrServerInitializeMarshall + 0x253","0x7ffff6e420f3","C:\windows\system32\RPCRT4.dll"
...字数限制...
"42","ntdll.dll","RtlUserThreadStart + 0x34","0x7ffff98d54e4","C:\windows\SYSTEM32\ntdll.dll"
# 4: bili_uid24022863 said:
2025-08-30 21:53:43
大至解析一下调用栈,从42-24都是RPC。这个RPC调用了WMI的WmiPerfClass,这是负责处理性能计数器相关查询的程序。而WmiPerfClass用pdh.dll来获取性能数据。而pdh.dll通过KERNELBASE.dll!RegQueryValueExW的转发调用到了usbperf.dll,最后usbperf.dll发现找不到First Counter
添加评论

昵称 *

E-mail