【发布时间】:2017-03-26 04:53:36
【问题描述】:
在使用 Windows 10 UWP C# 编程访问 HID USB 设备时遇到问题。
- 找到设备(GetDeviceSelector、DeviceInformation)没有问题,打开设备(FromIdAsync)也没有问题。
- 我还可以向它发送一个没有问题的输出报告(CreateOutputReport,为消息添加一个字节数组,SendOutputReportAsync),USB 设备通过打开 LED 做出正确反应。
- 无论我如何尝试包含不同的报告 ID,我都无法读取输入报告 (GetInputReportAsync)。尝试执行此操作时,设备仍然有效且不为空。
我已经仔细检查了 VID、PID、使用页面和 ID。这些都没有违反我在文档中可以找到的任何内容,而不是尝试使用顶级使用页面。
我已经仔细检查了设备中的固件及其 USB 描述符。设备管理器在 Windows 7 或 10 中很满意,没有报告任何问题。我可以通过我用 Windows DDK 编写的用于 Windows 7 和测试应用程序的接口 DLL 访问 Windows 7 或 10 中的设备,并在 Windows 7 或 10 中正常发送/接收。我可以设置 LED,回读值,等等,所有功能都工作。
我已经连接了一个 USB 分析器并且数据包在那里,但是 GetInputReportAsync 函数不会返回任何数据,只是一个异常“连接到系统的设备不起作用。(来自 HRESULT 的异常:0x8007001F)”
使用 Window 10 Home,启用开发者模式。已试用 Visual Studio 2015 Community Edition 和 VS 2015 Pro 试用版。我已经尝试过 GitHub 上的 Windows-universal-samples-master 和 CustomHidDeviceAccess 项目,没有运气,我的设备与本演示中使用的设备有点不同。
以前有人见过吗?有什么技巧或特殊方法可以做到这一点吗? Windows 10 或我的项目中是否缺少我的设置?十六进制FF中是否有某些使用页面?我不能与 UWP 一起使用的范围?还是某些报告 ID?只是想知道为什么我在尝试通过 C# UWP 获取输入报告时总是遇到异常,以及为什么我的 DDK DLL/应用程序总是有效。建议?谢谢。
【问题讨论】: