对于一些广泛使用 WinUSB API 或用户模式 USB 驱动程序的人来说,有一个问题 - WinUSB API 或用户模式驱动程序是否可以用作 USB 连接的被动观察者,捕获中断通知、控制请求、数据传输等. 不干扰其他应用程序(例如 iTunes),这显然需要同时访问设备,同时我的应用程序正在监视连接并在其上显示数据?
或者您是否必须编写一个内核模式过滤驱动程序并将自己注入到 USB 堆栈中才能实现这一点?
过去,有一些可靠的选项(具体来说是 libusb-win32 和 usbsnoop),尽管它们都是围绕旧的 DDK 而不是 Windows Driver Foundation 构建的,并且不再得到真正的定期支持。因此,我犹豫是否要围绕它们构建一些重要的东西。
您必须编写一个过滤器驱动程序。没有其他方法可以拦截其他设备生成的流量。您可以使用更新版本的 DDK,即 KMDF 来完成此任务。它会让你的生活更轻松。但我认为购买一个硬件总线分析仪会更便宜、更有效。
https://desowin.org/usbpcap/ 这个目的。