万本电子书0元读

万本电子书0元读

顶部广告

Windows内核编程电子书

1.本书内容详实、深浅出、案例丰富,是 Windows内核发工程师的参考资料,也可供相关专业的在校学生和门者学习参考。 2.本书是近年来少见的关于 Windows 内核发的参考书籍。 3.读者可以从https://github.com/zodiacon/windowskernelprogrammingbook 下载本书配套代码及后续例程的更新,还可以通过 zodiacon@live.com 联系作者,也可以通过 holly.lee@gmail.com 与译者联系。

售       价:¥

纸质售价:¥89.20购买纸书

57人正在读 | 0人评论 7.1

作       者:(美)帕维尔·约西福维奇(Pavel Yosifovich)

出  版  社:机械工业出版社

出版时间:2021-06-01

字       数:16.4万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
在Windows系统中没有什么比内核更强大了,但是如何编写内核驱动程序来利用这种强大能力呢? 这本书为读者描述如何编写Windows系统的软件内核驱动程序。 这些驱动程序不涉及硬件,而是处理系统本身:程、线程、模块、注册表等等。内核代码可用于监视重要事件,防止在需要时发生某些事件。 读者可以通过编写各种过滤器来拦截驱动程序中感兴趣的调用。<br/>【推荐语】<br/>1.本书内容详实、深浅出、案例丰富,是 Windows内核发工程师的参考资料,也可供相关专业的在校学生和门者学习参考。 2.本书是近年来少见的关于 Windows 内核发的参考书籍。 3.读者可以从https://github.com/zodiacon/windowskernelprogrammingbook 下载本书配套代码及后续例程的更新,还可以通过 zodiacon@live.com 联系作者,也可以通过 holly.lee@gmail.com 与译者联系。<br/>【作者】<br/>帕维尔·约西福维奇(Pavel Yosifovich)是著名的软件发者、培训师、作者和演讲者。他热爱关于软件的一切,并且依然怀念他从前的Commodore 64电脑。可以通过zodiacon@live.com联系他。 [译者简介] 李亮 资深程序员,从事软件发三十余年。从嵌式系统到企业应用发,从操作系统底层到 Web 前端技术均有涉足。喜欢钻研技术,对编写代码孜孜以求,也时常阅读和翻译相关技术书籍,追寻生活与工作之间的平衡。<br/>
目录展开

版权页

目录

译者序

第1章 Windows内部概览

1.1 进程

1.2 虚拟内存

1.2.1 页状态

1.2.2 系统内存

1.3 线程

1.4 系统服务

1.5 系统总体架构

1.6 句柄和对象

1.6.1 对象名称

1.6.2 访问已经存在的对象

第2章 开始内核开发

2.1 安装工具

2.2 创建一个驱动程序项目

2.3 DriverEntry和Unload例程

2.4 部署驱动程序

2.5 简单的跟踪

2.6 练习

2.7 总结

第3章 内核编程基础

3.1 内核编程的一般准则

3.1.1 未处理的异常

3.1.2 终止

3.1.3 函数返回值

3.1.4 IRQL

3.1.5 C++用法

3.1.6 测试和调试

3.2 调试构建与发布构建

3.3 内核API

3.4 函数和错误代码

3.5 字符串

3.6 动态内存分配

3.7 链表

3.8 驱动程序对象

3.9 设备对象

3.10 总结

第4章 驱动程序:从头到尾

4.1 简介

4.2 驱动程序初始化

4.2.1 将信息传递给驱动程序

4.2.2 客户程序/驱动程序之间的通信协议

4.2.3 创建设备对象

4.3 客户程序代码

4.4 Create和Close分发例程

4.5 DeviceIoControl分发例程

4.6 安装与测试

4.7 总结

第5章 调试

5.1 Debugging Tools for Windows

5.2 WinDbg简介

5.3 内核调试

5.3.1 本地内核调试

5.3.2 本地内核调试教程

5.4 完整内核调试

5.4.1 配置目标机

5.4.2 配置宿主机

5.5 内核驱动程序调试教程

5.6 总结

第6章 内核机制

6.1 中断请求级别

6.1.1 提升和降低IRQL

6.1.2 线程优先级与IRQL

6.2 延迟过程调用

6.3 异步过程调用

6.4 结构化异常处理

6.4.1 使用__try/__except

6.4.2 使用__try/__finally

6.4.3 使用C++ RAII代替__try/__finally

6.5 系统崩溃

6.5.1 崩溃转储信息

6.5.2 分析转储文件

6.5.3 系统挂起

6.6 线程同步

6.6.1 互锁操作

6.6.2 分发器对象

6.6.3 互斥量

6.6.4 快速互斥量

6.6.5 信号量

6.6.6 事件

6.6.7 执行体资源

6.7 高IRQL同步

6.8 工作项目

6.9 总结

第7章 I/O请求包

7.1 IRP简介

7.2 设备节点

7.3 IRP和I/O栈位置

7.4 分发例程

7.5 访问用户缓冲区

7.5.1 缓冲I/O

7.5.2 直接I/O

7.5.3 IRP_MJ_DEVICE_CONTROL的用户缓冲区

7.6 汇总:Zero驱动程序

7.6.1 使用预编译头

7.6.2 DriverEntry例程

7.6.3 读分发例程

7.6.4 写分发例程

7.6.5 测试应用

7.7 总结

第8章 进程和线程通知

8.1 进程通知

8.2 实现进程通知

8.2.1 DriverEntry例程

8.2.2 处理进程退出通知

8.2.3 处理进程创建通知

8.3 将数据提供给用户模式

8.4 线程通知

8.5 映像载入通知

8.6 练习

8.7 总结

第9章 对象和注册表通知

9.1 对象通知

9.1.1 操作前回调

9.1.2 操作后回调

9.2 进程保护者驱动程序

9.2.1 对象通知注册

9.2.2 管理受保护的进程

9.2.3 操作前回调

9.2.4 客户应用

9.3 注册表通知

9.3.1 处理操作前通知

9.3.2 处理操作后回调

9.3.3 性能考虑

9.4 实现注册表通知

9.4.1 处理注册表回调

9.4.2 修改后的客户程序代码

9.5 练习

9.6 总结

第10章 文件系统小过滤驱动

10.1 简介

10.2 装入与卸载

10.3 初始化

10.3.1 操作回调注册

10.3.2 高度

10.4 安装

10.4.1 INF文件

10.4.2 安装驱动程序

10.5 处理I/O操作

10.5.1 操作前回调

10.5.2 操作后回调

10.6 删除保护驱动程序

10.6.1 处理创建前回调

10.6.2 处理设置信息前回调

10.6.3 重构

10.6.4 将驱动程序通用化

10.6.5 测试修改后的驱动程序

10.7 文件名

10.7.1 文件名的各个部分

10.7.2 RAII FLT_FILE_NAME_INFORMATION包装器

10.8 另一个删除保护驱动程序

10.8.1 处理创建前回调和设置信息前回调

10.8.2 测试驱动程序

10.9 上下文

10.10 初始化I/O请求

10.11 文件备份驱动程序

10.11.1 创建后回调

10.11.2 写前回调

10.11.3 清理后回调

10.11.4 测试驱动程序

10.11.5 恢复备份

10.12 用户模式通信

10.12.1 创建通信端口

10.12.2 用户模式连接

10.12.3 发送和接收消息

10.12.4 增强文件备份驱动程序

10.12.5 用户模式客户程序

10.13 调试

10.14 练习

10.15 总结

第11章 其他主题

11.1 驱动程序签名

11.2 驱动程序验证器

11.3 使用原生API

11.4 过滤驱动程序

11.4.1 过滤驱动程序的实现

11.4.2 附加过滤器

11.4.3 在任意时刻附加过滤器

11.4.4 过滤器的清理

11.4.5 基于硬件的过滤驱动程序的更多内容

11.5 设备监视器

11.5.1 增加过滤设备

11.5.2 移除过滤设备

11.5.3 初始化和卸载

11.5.4 处理请求

11.5.5 测试驱动程序

11.5.6 请求的结果

11.6 驱动程序挂钩

11.7 内核库

11.8 总结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部