无法在 Windows 10 UWP 中使用 HIDDevice 类打开 HID USB 设备

问题描述 投票:0回答:2

以下代码在某些 Windows 10 系统中返回 null

currentDevice = await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
                               FileAccessMode.ReadWrite);

我发现这个问题可以通过重新安装 Windows 10/或使用 Windows 10 中的“新鲜”选项来解决,该选项删除所有第三方应用程序。我无法猜测哪个应用程序可能与 HID 设备发生冲突。

仅供您记录,我可以使用 WPF Win32 应用程序打开此 HID 设备的句柄,但在通用应用程序中我不能!

新更新 7/11/2018

使用 WinDbg 执行一些调试任务后,我们意识到 UWP 访问失败,因为此分支上有一些可用的 Upperfilter:[Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class]。其中一些是由卡巴斯基反病毒软件制作和控制的。

想了解哪个/为什么内核/用户驱动程序对仅 UWP Store 应用程序访问 HID 设备带来了此限制?

c# uwp win-universal-app windows-10-universal hid
2个回答
0
投票

来自MSDN文档:

商店应用程序第一次调用此方法时,应从 UI 线程调用它,以显示同意提示。用户同意后,可以从任何应用程序线程调用该方法。

因此,您可以在

Dispatcher.RunAsync
中调用此方法,如下所示:

await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,()=> {
            currentDevice = await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
                           FileAccessMode.ReadWrite);
        });

0
投票

你找到这个问题的根源了吗?我也有同样的问题。另外,我无法获得对 hiddevice 的读写访问权限,只能进行读取访问。看来要使 UsbDevice 工作,USB 设备必须使用 WinUSB 驱动程序。

© www.soinside.com 2019 - 2024. All rights reserved.