我有一个多功能 USB 设备。没有司机(还)。我想编写一个只与其中一个接口对话的应用程序。WinUSB 似乎非常适合这项工作,但有一个障碍:我需要先更改设备配置,然后才能访问接口。
有没有办法让 WinUSB(或系统的任何其他部分)在开始时设置设备配置?我不需要更改它,我只是希望它不是配置零。
我不认为你可以用 WinUSB 做到这一点。
您可能会考虑使用libusb,因为它有一个名为libusb_set_configuration的函数,它应该可以满足您的需求。但是,我不知道该功能是否真的适用于 Windows。
WinUSB 不会让您设置设备配置。通常的方法是使用 USBccgp,指定“OriginalConfigurationValue”注册表值,然后在 USBccgp 之上运行 WinUSB。
需要明确的是,您不能使用 Microsoft 提供的驱动程序即时更改配置。WinUSB 不处理配置,USBccgp 只会设置硬编码配置。如果需要在运行时选择配置,则需要编写自己的驱动程序,并且它需要是内核驱动程序(而不是用户空间驱动程序)。