我想知道我是否可以监控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的工作原理,那么我就是一个完全白痴,这是有道理的。
答案 0 :(得分:2)
不在这个级别。
You can monitor USB traffic using Wireshark,但您看到的操作将比您想象的 MUCH 更低。 USB大容量存储设备不了解文件或复制数据等高级抽象;他们处理的操作主要是围绕在设备内的特定位置读取和写入数据。
(顺便说一句,这意味着USB存储设备不会以您想象的方式参与文件复制。计算机完全控制文件副本,并通过将数据写入USB设备来实现USB设备永远不会从计算机上请求文件;它甚至没有办法要求它。)
更适合您需求的工具可能是Process Monitor,这样您就可以监控Windows API调用。这仍然可能是一个比您期望的更低级别的视图,但它至少会以文件的形式显示操作。