- 我没有问题找到设备(GetDeviceSelector,DeviceInformation),打开设备也没有问题(FromIdAsync)。
- 我也可以发送输出报告(CreateOutputReport,添加一个字节数组的消息,SendOutputReportAsync),USB设备通过点亮LED正确地做出反应。
- 无论我尝试什么(包括不同的报告ID),我都无法读取输入报告(GetInputReportAsync)。在这种情况下,设备仍然有效,不为空。
我已经仔细检查了VID、PID、Usage Page和ID。根据文档,这些都没有违反任何规定。我没有尝试使用顶级使用页面。
我已经仔细检查了设备中的固件和USB描述符。在Windows 7或10中,设备管理器很好用,没有报告问题。我可以通过我为Windows 7编写的Windows DDK接口DLL访问Windows 7或10中的设备,并在Windows 7或10中发送/接收正常。我可以设置LED,读取返回值等,所有功能都能够使用。
我连接了一个USB分析仪,数据包都在那里,但是GetInputReportAsync函数不会返回任何数据,只会显示一个异常“系统上附加的设备未运行。(HRESULT:0x8007001F)”
使用Windows 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 /应用程序总是有效的。建议?谢谢。
GetInputReportAsync
方法时仍然遇到了相同的错误。虽然我没有任何问题通过InputReportReceived
事件获取输入报告。文档中的备注也非常令人困惑,它说尽管有显式的GetInputReportAsync
方法,但你应该通过InputReportReceived
事件参数访问报告。 - Artur Wyszomirski