Monitor USB IO "traffic"(任何语言)

Monitor USB IO "traffic" (in whatever language)

我想知道我是否可以监控 USB 的 I/O,例如:

[Ask] PC->Port 1: Requesting contents of "D:\folder\file.txt"
[Res] Port 1->PC: File exists, <response>

[Ask] PC->Port 1: Copy "C:\folder\file2.txt" to "D:\folder\file2.txt"
[Ask] Port 1->PC: Requesting contents of "C:\folder\file2.txt"
[Res] ... etc. You get the idea

如果我可以在 Java 中执行此操作,我会更愿意,但 C 的任何变体也是可以接受的。

有什么方法可以做到这一点吗?如果这不是 USB 的工作方式,那我就是个彻头彻尾的白痴,这是有道理的。

不是这个级别。

You can monitor USB traffic using Wireshark,但您看到的操作将比您在这里想象的要低 MUCH 级别。 USB 大容量存储设备不了解文件或复制数据等高级抽象;它们处理的操作主要围绕在设备内的特定位置读取和写入数据。

(顺便说一句,这意味着USB存储设备并不像你想象的那样参与文件复制。计算机完全控制文件复制,并且通过向USB设备写入数据来实现它们.USB 设备永远不会从计算机请求文件;它甚至没有任何方式请求该文件。)

更适合您需要的工具可能是 Process Monitor,它可以让您监控 Windows API 呼叫。这可能仍然是一个比您预期的更低级别的视图,但它至少会显示文件方面的操作。