linux - Linux内核如何拦截发送到U盘的数据?

标签 linux linux-kernel usb storage driver

在 Linux 内核源代码的哪个位置可以找到处理将数据发送到 USB 闪存驱动器的函数? “数据”是指实际文件内容。例如,当我将“Report.docx”拖放到 USB 拇指驱动器时,我需要能够拦截此数据,以便在将文件写入 USB 拇指驱动器之前修改文件的内容。

我知道 USB 存储模块 (drivers/usb/storage) 是处理 USB 大容量存储设备(如拇指驱动器)的地方,但我找不到正确的位置。我环顾了 transfer.c 但我的调试尝试只显示函数被调用,无论我是否正在传输任何文件。此外,根据我的理解,一切都是通过 URB 完成的,我不清楚如何处理这些。我找对地方了吗?

为了我的项目,我需要修改驱动程序(不使用任何第三方库或用户空间代码)。我正在使用 Linux 3.12.0。

最佳答案

不是 usb 子系统方面的专家,但我会先看看 驱动程序/usb/storage/transport.c::usb_stor_bulk_transfer_buf()

关于linux - Linux内核如何拦截发送到U盘的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167445/

相关文章:

c++ - 无法理解 gadgetfs 中的部分代码

linux - 我如何在 AWS 的 amazon linux 上使用 Atom 编辑器?

linux - 在 Linux 中测量库的大小

c - fork 过程的输出

linux - i3 - 使用带有多个键码的绑定(bind)的快捷方式

linux-kernel - 如何在 Linux 中分配大的连续内存区域

linux - Kprobe:将返回探针与入口探针相关联

Linux:获取空闲空间物理 block 号(空闲空间位图)

winapi - 记录USB鼠标事件

广播接收器的Android杀死进程