Windows10x64虚拟自定义HID设备通讯演示
2022-04-02
3302
5
以前在Windows搞了很多虚拟的USB设备,像麦克风,扬声器,摄像头,键盘,鼠标等USB设备,突估有人说没有自定义HID设备啊。
我一想,确实没有,要不搞一个。
不过话又说回来,搞这个有什么用了?
我想了想可能是为了调试,或者为了软件隔离吧。比如说有一个软件用户不想和我们的软件有任何接口,但之间又必须通讯,这时弄个自定义的HID就很不错的。
这样用户通过Windows标准的HID API打开HID设备,至于这个HID设备是虚拟的还是真实的,他不用管,只需要和这个HID通讯就好了。而这里这里通过虚拟一个HID设备驱动实现,这样在驱动中接管HID的读和写数据,并通过我们自定义的接口将这些收发命令转发给我们的应用层,这样不就实现的了HID设备的数据通讯吗。
模块大概是这样的:
哈哈, http://610i.com/draw/ 画的图虽然糙了点,但比较方便
我们的应用软件通过Windows提供的DeviceIoControl与我们的驱动进行通讯,将虚拟HID的数据收发IPR转发给我们的应用软件。这样其实就是客户的软件与我们的软件进行通讯。
自定义HID演示:
驱动编译后为:
- HidDevice.sys
- HidDevice.cat
- HidDevice.inf
使用devcon进行虚拟HID总线驱动安装。
CD /d %~dp0
devcon.exe install HidDevice.inf "root\HidDevice"
安装后虚拟自定义HID设备在设备管理器的效果如下:
然后使用我们自定义应用软件和标准的HID调试工具进行通讯。
标准的HID调试工具运行界面;
我们的应用软件界面:
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936