DriveFilterExtension
DriveFilterExtension windows驱动过滤系统文件开发
typedef struct _DEVICE_EXTENSION {undefined
//media_in_device是指这个设备是否已经指定了一个文件作为存储媒质。
//这是一个用文件来虚拟磁盘的驱动。那么一个磁盘应该对应一个实际存在的文件。
//读写这个磁盘的请求最终转变为对文件的读写。
//如果一个磁盘设备对象还没有指定文件,那么这个内容是FALSE。
BOOLEAN media_in_device;
//file_handle是文件句柄。也就是这个虚拟磁盘所对应的文件。
HANDLE file_handle;
//file_information是这个文件的一些信息。
ANSI_STRING file_name;
LARGE_INTEGER file_size;
//read_only是否只读
BOOLEAN read_only;
//访问文件的时候需要使用的一个线程客户安全性上下文
PSECURITY_CLIENT_CONTEXT security_client_context;
//是一个链表头。一部分irp(windows发来的请求包)被放入这个链表中。
//我们为每个磁盘对象开启一个系统线程(处理线程),专门用来处理这些请求。
LIST_ENTRY list_head;
//是为了保证链表读写同步的锁
KSPIN_LOCK list_lock;
//是一个事件。当链表中没有请求的时候,处理请求的系统线程并不做任何事情,
//而只等待这个事件。当有请求到来,我们把请求放入链表,然后设置这个事件。
//处理线程就会开始处理这些请求。
KEVENT request_event;
//是线程的指针,用来最后等待这个线程的结束。
PVOID thread_pointer;
//是一个标志。如果设置为TRUE,处理线程执行的时候检测到这个,就会把自己终止掉。
BOOLEAN terminate_thread;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-04-11 char中文