Opening HIDs on Windows 10

Issue opening HID

I’m struggling to open a HID on Windows 10. When I run:

HID.findAvailable;
HID.postAvailable;

I get a list of devices, including the one I’m interested in (a Nintendo Switch Pro Controller):

13: 	Usage name and page: 	GamePad, 	GenericDesktop
	Vendor name: 	Nintendo
	Product name: 	Wireless Gamepad
	Vendor and product ID: 	1406, 8201
	Path: 	\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002057e_pid&2009#8&10b2b76a&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
	Serial Number: 	7048f77124f3
	Releasenumber and interfaceNumber: 	0, -1

But when I try to open it, using either of the following methods, I get an error message:

HID.openAt(13);
HID.open(1406, 8201);

// Post window output:
HID: path was not set specified yet, chosen the one with path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002057e_pid&2009#8&10b2b76a&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
HIDAPI : Unable to open device \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002057e_pid&2009#8&10b2b76a&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}: 1406, 8201
ERROR: HID: Could not open device

Things I’ve tried/considered

I saw that the help file Working with HID states: “NOTE: the backend for Windows has not been completed yet, so HID is not working yet on Windows.” However, I think this message might simply be out of date, as this GitHub issue opened in 2017 describes my exact issue, but has a resolution in 2019 stating that HID in Windows is actually working/implemented.

This post about a similar issue on OSX mentions needing to launch SuperCollider as root. I tried running it as admin on Windows, but it didn’t change anything. Similarly, there is a note in the aforementioned help file: “NOTE: if you have trouble opening a device, e.g. when you get the message ERROR: HID: Could not open device, please check the HID permissions.” But the HID permissions file only mentions Linux.

I tried the controller through both a wired and Bluetooth connection. I haven’t tried a different controller/HID.