woaidaima2017 发表于 2017-12-28 16:01:54

【59】Windows文件系统过滤驱动开发教程(第二版) PDF 电子版


目  录
基 础 篇

第1章 内核上机指导      2
1.1下载和使用WDK      2
1.1.1下载并安装WDK      2
1.1.2编写第一个C文件      4
1.1.3编译一个工程      5
1.2安装与运行      6
1.2.1下载一个安装工具      6
1.2.2运行与查看输出信息      7
1.2.3在虚拟机中运行      8
1.3调试内核模块      9
1.3.1下载和安装WinDbg      9
1.3.2设置Windows XP调试执行      9
1.3.3设置Vista调试执行      10
1.3.4设置VMware的管道虚拟串口      11
1.3.5设置Windows内核符号表      12
1.3.6实战调试first      13
第2章 内核编程环境及其特殊性      16
2.1内核编程的环境      16
2.1.1隔离的应用程序      16
2.1.2共享的内核空间      17
2.1.3无处不在的内核模块      18
2.2数据类型      19
2.2.1基本数据类型      19
2.2.2返回状态      19
2.2.3字符串      20
2.3重要的数据结构      21
2.3.1驱动对象      21
2.3.2设备对象      22
2.3.3请求      24
2.4函数调用      25
2.4.1查阅帮助      25
2.4.2帮助中有的几类函数      26
2.4.3帮助中没有的函数      28
2.5Windows的驱动开发模型      29
2.6WDK编程中的特殊点      30
2.6.1内核编程的主要调用源      30
2.6.2函数的多线程安全性      30
2.6.3代码的中断级      32
2.6.4WDK中出现的特殊代码      32
第3章 字符串与链表      35
3.1字符串操作      35
3.1.1使用字符串结构      35
3.1.2字符串的初始化      36
3.1.3字符串的拷贝      37
3.1.4字符串的连接      38
3.1.5字符串的打印      38
3.2内存与链表      40
3.2.1内存的分配与释放      40
3.2.2使用LIST_ENTRY      41
3.2.3使用长长整型数据      43
3.3自旋锁      44
3.3.1使用自旋锁      44
3.3.2在双向链表中使用自旋锁      45
3.3.3使用队列自旋锁提高性能      46
第4章 文件、注册表、线程      47
4.1文件操作      47
4.1.1使用OBJECT_ATTRIBUTES      47
4.1.2打开和关闭文件      48
4.1.3文件读/写操作      51
4.2注册表操作      53
4.2.1注册表键的打开      53
4.2.2注册表键值的读      55
4.2.3 注册表键值的写      57
4.3时间与定时器      58
4.3.1获得当前“滴答”数      58
4.3.2获得当前系统时间      58
4.3.3使用定时器      59
4.4线程与事件      62
4.4.1使用系统线程      62
4.4.2在线程中睡眠      63
4.4.3使用同步事件      64
第5章 应用与内核通信      67
5.1内核方面的编程      68
5.1.1生成控制设备      68
5.1.2控制设备的名字和符号链接      70
5.1.3控制设备的删除      71
5.1.4分发函数      72
5.1.5请求的处理      73
5.2应用方面的编程      74
5.2.1基本的功能需求      74
5.2.2在应用程序中打开与关闭设备      75
5.2.3设备控制请求      75
5.2.4内核中的对应处理      77
5.2.5结合测试的效果      79
5.3阻塞、等待与安全设计      80
5.3.1驱动主动通知应用      80
5.3.2通信接口的测试      81
5.3.3内核中的缓冲区链表结构      83
5.3.4输入:内核中的请求处理中的安全检查      84
5.3.5输出处理与卸载清理      85
第6章 64位和32位内核开发差异      88
6.164位系统新增机制      88
6.1.1WOW64子系统      88
6.1.2PatchGuard技术      91
6.1.364位驱动的编译、安装与运行      91
6.2编程差异      92
6.2.1汇编嵌入变化      92
6.2.2预处理与条件编译      93
6.2.3数据结构调整      93
开 发 篇

第7章 串口的过滤      96
7.1过滤的概念      96
7.1.1设备绑定的内核API之一      97
7.1.2设备绑定的内核API之二      98
7.1.3生成过滤设备并绑定      98
7.1.4从名字获得设备对象      100
7.1.5绑定所有串口      101
7.2获得实际数据      102
7.2.1请求的区分      102
7.2.2请求的结局      103
7.2.3写请求的数据      104
7.3完整的代码      105
7.3.1完整的分发函数      105
7.3.2如何动态卸载      106
7.3.3代码的编译与运行      107
第8章 键盘的过滤      109
8.1技术原理      110
8.1.1预备知识      110
8.1.2Windows中从击键到内核      110
8.1.3键盘硬件原理      112
8.2键盘过滤的框架      112
8.2.1找到所有的键盘设备      112
8.2.2应用设备扩展      115
8.2.3键盘过滤模块的DriverEntry      117
8.2.4键盘过滤模块的动态卸载      117
8.3键盘过滤的请求处理      119
8.3.1通常的处理      119
8.3.2PNP的处理      120
8.3.3读的处理      121
8.3.4读完成的处理      122
8.4从请求中打印出按键信息      123
8.4.1从缓冲区中获得KEYBOARD_INPUT_DATA      123
8.4.2从KEYBOARD_INPUT_DATA中得到键      124
8.4.3从MakeCode到实际字符      124
8.5Hook分发函数      126
8.5.1获得类驱动对象      126
8.5.2修改类驱动的分发函数指针      127
8.5.3类驱动之下的端口驱动      128
8.5.4端口驱动和类驱动之间的协作机制      129
8.5.5找到关键的回调函数的条件      129
8.5.6定义常数和数据结构      130
8.5.7打开两种键盘端口驱动寻找设备      131
8.5.8搜索在KbdClass类驱动中的地址      133
8.6Hook键盘中断反过滤      135
8.6.1中断:IRQ和INT      136
8.6.2如何修改IDT      136
8.6.3替换IDT中的跳转地址      137
8.6.4QQ的PS/2反过滤措施      139
8.7直接用端口操作键盘      139
8.7.1读取键盘数据和命令端口      139
8.7.2p2cUserFilter的最终实现      140
第9章 磁盘的虚拟      143
9.1虚拟的磁盘      143
9.2一个具体的例子      143
9.3入口函数      144
9.3.1入口函数的定义      144
9.3.2Ramdisk驱动的入口函数      145
9.4EvtDriverDeviceAdd函数      146
9.4.1EvtDriverDeviceAdd的定义      146
9.4.2局部变量的声明      146
9.4.3磁盘设备的创建      147
9.4.4如何处理发往设备的请求      148
9.4.5用户配置的初始化      149
9.4.6链接给应用程序      151
9.4.7小结      152
9.5FAT12/16磁盘卷初始化      152
9.5.1磁盘卷结构简介      152
9.5.2Ramdisk对磁盘的初始化      154
9.6驱动中的请求处理      160
9.6.1请求的处理      160
9.6.2读/写请求      160
9.6.3DeviceIoControl请求      162
9.7Ramdisk的编译和安装      164
9.7.1编译      164
9.7.2安装      164
9.7.3对安装的深入探究      165
第10章 磁盘的过滤      167
10.1磁盘过滤驱动的概念      167
10.1.1设备过滤和类过滤      167
10.1.2磁盘设备和磁盘卷设备过滤驱动      167
10.1.3注册表和磁盘卷设备过滤驱动      168
10.2具有还原功能的磁盘卷过滤驱动      168
10.2.1简介      168
10.2.2基本思想      169
10.3驱动分析      169
10.3.1DriverEntry函数      169
10.3.2AddDevice函数      170
10.3.3PnP请求的处理      174
10.3.4Power请求的处理      178
10.3.5DeviceIoControl请求的处理      178
10.3.6bitmap的作用和分析      182
10.3.7boot驱动完成回调函数和稀疏文件      187
10.3.8读/写请求的处理      190
第11章 文件系统的过滤与监控      199
11.1文件系统的设备对象      200
11.1.1控制设备与卷设备      200
11.1.2生成自己的一个控制设备      201
11.2文件系统的分发函数      202
11.2.1普通的分发函数      202
11.2.2文件过滤的快速IO分发函数      203
11.2.3快速IO分发函数的一个实现      205
11.2.4快速IO分发函数逐个简介      206
11.3设备的绑定前期工作      207
11.3.1动态地选择绑定函数      207
11.3.2注册文件系统变动回调      208
11.3.3文件系统变动回调的一个实现      209
11.3.4文件系统识别器      211
11.4文件系统控制设备的绑定      2

下载地址(回复可见):
**** Hidden Message *****

Bushmaster-cai 发表于 2018-1-17 02:08:15

indows文件系统过滤驱动开发教程(第二版) PDF 电子版

Amirk 发表于 2018-10-4 22:45:12

谢谢分享

wbxxue 发表于 2018-10-6 22:28:04

好几本书都失效了楼主!!

coolge 发表于 2020-4-4 17:15:38

读书增长见识谢谢楼主

loveabcc 发表于 2020-11-16 23:22:28

好东西谢谢分享

qq4475292 发表于 2020-11-21 14:15:16

66666666666

Smile.一生 发表于 2021-10-4 14:05:26

Windows文件系统过滤驱动开发教程

ldljlzw 发表于 2022-4-24 10:21:07

Windows文件系统过滤驱动开发教程

ldljlzw 发表于 2022-7-5 08:40:45

Windows文件系统过滤驱动开发教程
页: [1] 2 3
查看完整版本: 【59】Windows文件系统过滤驱动开发教程(第二版) PDF 电子版