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;

posted on   lydstory  阅读(32)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-04-11 char中文

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示