故障排除 Windows 事件查看器 USB 错误 0x26 状态 0xc000038e

故障排除 Windows 事件查看器 USB 错误 0x26 状态 0xc000038e

我需要一些指导,以解决我在使用某些 USB 设备时遇到的低级问题。

背景:我有一个.NET Windows Service,扫描connected USB devices via WMI queries+阅读低电平 USB 数据使用external C code

虽然这种情况很少发生,但 USB 设备(键盘、鼠标或智能卡读卡器)偶尔会停止工作。查看 Windows 的Device Manager,设备显示为带有感叹号的黄色三角形。查看 的Event ViewerMicrosoft-Windows-Kernel PnP我看到以下错误(对于老鼠, 在这种情况下)

在此处输入图片描述

XML 视图:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-Kernel-PnP" Guid="{9c205a39-1250-487d-abd7-e831c6290539}" /> 
  <EventID>411</EventID> 
  <Version>0</Version> 
  <Level>2</Level> 
  <Task>0</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x4000000000000000</Keywords> 
  <TimeCreated SystemTime="2022-12-22T08:15:21.1540378Z" /> 
  <EventRecordID>300</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="4" ThreadID="3780" /> 
  <Channel>Microsoft-Windows-Kernel-PnP/Configuration</Channel> 
  <Computer>MyComputerName</Computer> 
  <Security UserID="S-1-5-18" /> 
  </System>
- <EventData>
  <Data Name="DeviceInstanceId">USB\VID_03F0&PID_094A\6&1ab5e341&0&2</Data> 
  <Data Name="DriverName">input.inf</Data> 
  <Data Name="ClassGuid">{745a17a0-74d3-11d0-b6fe-00a0c90f57da}</Data> 
  <Data Name="ServiceName">HidUsb</Data> 
  <Data Name="LowerFilters" /> 
  <Data Name="UpperFilters" /> 
  <Data Name="Problem">0x26</Data> 
  <Data Name="Status">0xc000038e</Data> 
  </EventData>
  </Event>

下一步该怎么办?

没有明确迹象表明该错误是由与我的 .NET 服务的交互引起的。无论如何,我想我需要弄清楚这些消息是如何写入 Windows 的应急工作周从那里,尝试找到 C 代码中哪里有一个钩子或一段代码可以为给定的 ETW 监听器提供信息。

  1. 这是正确的方法吗?还有其他更短的替代方案吗?我还遗漏了什么吗?
  2. 无法找到关于0x26错误/0xc000038e状态代码含义的确切信息。是否有特定的资源?
  3. 有没有办法我可以将这些错误实例的数据转储到类似的工具中Windows 调试器因此它会加载所有相关部分的状态 - 也许有帮助?
  4. 识别此特定设备的已安装驱动程序 - 并搜索它最终写入的日志?

相关内容