I'm writing a console and GUI app that needs to communicate with a FIDO security key over the HID protocol (usage page: 0xf1d0, usageId: HID_USAGE_PAGE_GENERIC==0x0001).
The Windows.Devices.HumanInterfaceDevice API supports most HID devices. However, it blocks the top-level application collection represented by the following usage pages, to prevent conflict with other Windows APIs and OS behavior:
I was hoping that I could use the UWP interfaces so long as I ran as root, but that doesn't seem to work.
I can't use the built-in FIDO support because I am using a special vendor-specific feature.
So, if I can't use that, but need to build an app that will allow HID communication even if it requires a UAC escalation, which interface should I use and how do I ensure the UAC escalation happens if one is needed? Is it possible to do so in c# so that I'm at least using a type-safe language?