我尝试在 Windows 版本系列(无 GPO)下禁用插入的 USB 设备。我尝试了几种语言来实现我的目标,但没有成功。我寻找一种与 Linux udev 相对应的方法。
我想在“热插拔”时禁用 USB 设备,但我不知道这是否可行。
我的第一个方法:
- C++ 和 C# 中的 Setupapi 库
- PowerShell cmdlet 禁用-PNPDevice
- 我想要的设备是禁用键盘,所以我还查看了 win32_keyboard 类 CIM_keyboard 和其他类......
- 下一步是 Windows 驱动程序...
我对这些解决方案的问题是,当我想在插入后立即使禁用生效时,应该移除设备并重新插入以使停用生效。
在 Windows 注册表 ( HKLM \ SYSTEM \ CurrentControlSet \ Services \ kbdclass or kbdhid
)中Start
,可以0x04
根据类别管理名为的值 (= 禁用),但如果我理解的话,如果我这样做,相关服务将根本无法启动,所以在这些情况下,这使我的第二个键盘(主键盘)保持活动状态,并且我不会发现自己没有键盘。
您如何看待 libusb-win32 库?是否有特定的 Windows 注册表项可以立即更改设备的状态?
我想知道这是否可行并可以指导?谢谢。