Windows 用于打开和保存文件的 IRP 函数调用
Windows IRP function call for opening and saving files
我目前正在开发一个 minifilter 驱动程序,我需要拦截此类事件:
- 列出文件夹中的文件
- 正在应用程序中打开文件
- 正在关闭此文件
- 修改并保存文件
根据我的阅读,我想我需要过滤 IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE,但我需要比猜测更好的东西。
我如何才能准确知道每个事件将发送哪个 IRP?
- 列出文件夹内的文件:IRP_MJ_DIRECTORY_CONTROL。检查 this 了解更多信息。
- 正在应用程序中打开文件:IRP_MJ_CREATE。查看 this 了解更多信息。
- 关闭文件:IRP_MJ_CLEANUP 和 IRP_MJ_CLOSE
- 修改文件:IRP_MJ_WRITE、IRP_MJ_SET_INFORMATION(特别是 FileEndOfFileInformation 和 FileValidDataLengthInformation 信息 类), IRP_MJ_FILE_SYSTEM_CONTROL(特别是 FSCTL_OFFLOAD_WRITE,
FSCTL_WRITE_RAW_ENCRYPTED 和 FSCTL_SET_ZERO_DATA fsctl 代码)。
祝你好运。
我目前正在开发一个 minifilter 驱动程序,我需要拦截此类事件:
- 列出文件夹中的文件
- 正在应用程序中打开文件
- 正在关闭此文件
- 修改并保存文件
根据我的阅读,我想我需要过滤 IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE,但我需要比猜测更好的东西。
我如何才能准确知道每个事件将发送哪个 IRP?
- 列出文件夹内的文件:IRP_MJ_DIRECTORY_CONTROL。检查 this 了解更多信息。
- 正在应用程序中打开文件:IRP_MJ_CREATE。查看 this 了解更多信息。
- 关闭文件:IRP_MJ_CLEANUP 和 IRP_MJ_CLOSE
- 修改文件:IRP_MJ_WRITE、IRP_MJ_SET_INFORMATION(特别是 FileEndOfFileInformation 和 FileValidDataLengthInformation 信息 类), IRP_MJ_FILE_SYSTEM_CONTROL(特别是 FSCTL_OFFLOAD_WRITE, FSCTL_WRITE_RAW_ENCRYPTED 和 FSCTL_SET_ZERO_DATA fsctl 代码)。
祝你好运。