以下代码在某些Windows 10系统中返回null
currentDevice = await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
FileAccessMode.ReadWrite);
我发现可以通过重新安装Windows 10 /或在Windows 10中使用“Fresh”选项来解决此问题,该选项会删除所有第三方应用程序。我无法猜测哪个应用程序可能与HID设备发生冲突。
仅为了您的记录,我可以使用WPF Win32应用程序打开此HID设备的句柄,但在Universal应用程序中我不能!
新更新7/11/2018
使用WinDbg完成一些调试任务后,我们意识到我们的UWP访问失败是因为此分支上有一些Upperfilters:[Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Class]。其中一些是由卡巴斯基反病毒制造和控制的。
寻找内核/用户驱动程序的哪些/为什么会对仅使用UWP Store应用程序访问HID设备带来此限制?
答案 0 :(得分:0)
来自MSDN文件:
第一次由商店应用程序调用此方法时,应该从UI线程调用它以显示同意提示。在用户授予同意后,可以从任何应用程序线程调用该方法。
所以,您可以在Dispatcher.RunAsync
中调用此方法,如下所示:
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,()=> {
currentDevice = await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
FileAccessMode.ReadWrite);
});