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;

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值