【假一罚四】Windows内核编程
全新正版书籍,假一罚四,放心选购。可开发票,24小时内发货。
¥
92.2
7.7折
¥
119
全新
库存4件
作者[美]帕维尔·约西福维奇(PavelYosifovich)著,李亮 译
出版社机械工业出版社
ISBN9787111684756
出版时间2021-06
装帧平装
开本16开
定价119元
货号31181418
上书时间2025-01-05
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
帕维尔·约西福维奇(PavelYosifovich)是著名的软件开发者、培训师、作者和演讲者。他热爱关于软件的一切,并且依然怀念他从前的Commodore64电脑。可以通过zodiacon@live.com联系他。<br>[译者简介]<br>李亮资深程序员,从事软件开发三十余年。从嵌入式系统到企业应用开发,从操作系统底层到Web前端技术均有涉足。喜欢钻研技术,对编写代码孜孜以求,也时常阅读和翻译相关技术书籍,追寻生活与工作之间的平衡。
目录
译者序<br/>第1章 Windows内部概览1<br/>1.1 进程1<br/>1.2 虚拟内存2<br/>1.2.1 页状态4<br/>1.2.2 系统内存4<br/>1.3 线程5<br/>1.4 系统服务7<br/>1.5 系统总体架构8<br/>1.6 句柄和对象10<br/>1.6.1 对象名称11<br/>1.6.2 访问已经存在的对象13<br/>第2章 开始内核开发15<br/>2.1 安装工具15<br/>2.2 创建一个驱动程序项目16<br/>2.3 DriverEntry和Unload例程17<br/>2.4 部署驱动程序19<br/>2.5 简单的跟踪22<br/>2.6 练习24<br/>2.7 总结24<br/>第3章 内核编程基础25<br/>3.1 内核编程的一般准则25<br/>3.1.1 未处理的异常26<br/>3.1.2 终止26<br/>3.1.3 函数返回值26<br/>3.1.4 IRQL27<br/>3.1.5 C++用法27<br/>3.1.6 测试和调试28<br/>3.2 调试构建与发布构建28<br/>3.3 内核API29<br/>3.4 函数和错误代码30<br/>3.5 字符串30<br/>3.6 动态内存分配31<br/>3.7 链表33<br/>3.8 驱动程序对象35<br/>3.9 设备对象36<br/>3.10 总结38<br/>第4章 驱动程序:从头到尾39<br/>4.1 简介39<br/>4.2 驱动程序初始化40<br/>4.2.1 将信息传递给驱动程序41<br/>4.2.2 客户程序/驱动程序之间的通信协议42<br/>4.2.3 创建设备对象44<br/>4.3 客户程序代码46<br/>4.4 Create和Close分发例程47<br/>4.5 DeviceIoControl分发例程48<br/>4.6 安装与测试52<br/>4.7 总结54<br/>第5章 调试55<br/>5.1 Debugging Tools for Windows 55<br/>5.2 WinDbg简介56<br/>5.3 内核调试70<br/>5.3.1 本地内核调试70<br/>5.3.2 本地内核调试教程71<br/>5.4 完整内核调试77<br/>5.4.1 配置目标机78<br/>5.4.2 配置宿主机79<br/>5.5 内核驱动程序调试教程81<br/>5.6 总结83<br/>第6章 内核机制84<br/>6.1 中断请求级别84<br/>6.1.1 提升和降低IRQL86<br/>6.1.2 线程优先级与IRQL87<br/>6.2 延迟过程调用88<br/>6.3 异步过程调用90<br/>6.4 结构化异常处理91<br/>6.4.1 使用__try/__except93<br/>6.4.2 使用__try/__finally95<br/>6.4.3 使用C++ RAII代替__try/__finally96<br/>6.5 系统崩溃98<br/>6.5.1 崩溃转储信息100<br/>6.5.2 分析转储文件103<br/>6.5.3 系统挂起105<br/>6.6 线程同步107<br/>6.6.1 互锁操作107<br/>6.6.2 分发器对象108<br/>6.6.3 互斥量110<br/>6.6.4 快速互斥量113<br/>6.6.5 信号量114<br/>6.6.6 事件114<br/>6.6.7 执行体资源115<br/>6.7 高IRQL同步116<br/>6.8 工作项目119<br/>6.9 总结120<br/>第7章 I/O请求包121<br/>7.1 IRP简介121<br/>7.2 设备节点122<br/>7.3 IRP和I/O栈位置126<br/>7.4 分发例程130<br/>7.5 访问用户缓冲区132<br/>7.5.1 缓冲I/O133<br/>7.5.2 直接I/O135<br/>7.5.3 IRP_MJ_DEVICE_CONTROL的用户缓冲区138<br/>7.6 汇总:Zero驱动程序139<br/>7.6.1 使用预编译头140<br/>7.6.2 DriverEntry例程142<br/>7.6.3 读分发例程143<br/>7.6.4 写分发例程144<br/>7.6.5 测试应用144<br/>7.7 总结145<br/>第8章 进程和线程通知146<br/>8.1 进程通知146<br/>8.2 实现进程通知149<br/>8.2.1 DriverEntry例程151<br/>8.2.2 处理进程退出通知152<br/>8.2.3 处理进程创建通知154<br/>8.3 将数据提供给用户模式156<br/>8.4 线程通知160<br/>8.5 映像载入通知163<br/>8.6 练习164<br/>8.7 总结165<br/>第9章 对象和注册表通知166<br/>9.1 对象通知166<br/>9.1.1 操作前回调168<br/>9.1.2 操作后回调170<br/>9.2 进程保护者驱动程序171<br/>9.2.1 对象通知注册172<br/>9.2.2 管理受保护的进程172<br/>9.2.3 操作前回调176<br/>9.2.4 客户应用177<br/>9.3 注册表通知180<br/>9.3.1 处理操作前通知181<br/>9.3.2 处理操作后回调181<br/>9.3.3 性能考虑182<br/>9.4 实现注册表通知182<br/>9.4.1 处理注册表回调183<br/>9.4.2 修改后的客户程序代码185<br/>9.5 练习187<br/>9.6 总结187<br/>第10章 文件系统小过滤驱动188<br/>10.1 简介188<br/>10.2 装入与卸载189<br/>10.3 初始化191<br/>10.3.1 操作回调注册194<br/>10.3.2 高度198<br/>10.4 安装200<br/>10.4.1 INF文件200<br/>10.4.2 安装驱动程序206<br/>10.5 处理I/O操作206<br/>10.5.1 操作前回调207<br/>10.5.2 操作后回调209<br/>10.6 删除保护驱动程序210<br/>10.6.1 处理创建前回调212<br/>10.6.2 处理设置信息前回调216<br/>10.6.3 重构218<br/>10.6.4 将驱动程序通用化221<br/>10.6.5 测试修改后的驱动程序225<br/>10.7 文件名227<br/>10.7.1 文件名的各个部分228<br/>10.7.2 RAII FLT_FILE_NAME_INFORMATION包装器231<br/>10.8 另一个删除保护驱动程序232<br/>10.8.1 处理创建前回调和设置信息前回调239<br/>10.8.2 测试驱动程序241<br/>10.9 上下文241<br/>10.10 初始化I/O请求244<br/>10.11 文件备份驱动程序246<br/>10.11.1 创建后回调248<br/>10.11.2 写前回调252<br/>10.11.3 清理后回调257<br/>10.11.4 测试驱动程序258<br/>10.11.5 恢复备份258<br/>10.12 用户模式通信260<br/>10.12.1 创建通信端口261<br/>10.12.2 用户模式连接262<br/>10.12.3 发送和接收消息263<br/>10.12.4 增强文件备份驱动程序264<br/>10.12.5 用户模式客户程序266<br/>10.13 调试268<br/>10.14 练习271<br/>10.15 总结271<br/>第11章 其他主题273<br/>11.1 驱动程序签名273<br/>11.2 驱动程序验证器276<br/>11.3 使用原生API282<br/>11.4 过滤驱动程序283<br/>11.4.1 过滤驱动程序的实现285<br/>11.4.2 附加过滤器286<br/>11.4.3 在任意时刻附加过滤器288<br/>11.4.4 过滤器的清理289<br/>11.4.5 基于硬件的过滤驱动程序的更多内容290<br/>11.5 设备监视器292<br/>11.5.1 增加过滤设备293<br/>11.5.2 移除过滤设备296<br/>11.5.3 初始化和卸载297<br/>11.5.4 处理请求298<br/>11.5.5 测试驱动程序301<br/>11.5.6 请求的结果305<br/>11.6 驱动程序挂钩307<br/>11.7 内核库309<br/>11.8 总结310
内容摘要
在Windows系统中没有什么比内核更强大了,但是如何编写内核驱动程序来利用这种强大能力呢?这本书为读者描述如何编写Windows系统的软件内核驱动程序。这些驱动程序不涉及硬件,而是处理系统本身:进程、线程、模块、注册表等等。内核代码可用于监视重要事件,防止在需要时发生某些事件。读者可以通过编写各种过滤器来拦截驱动程序中感兴趣的调用。
— 没有更多了 —
以下为对购买帮助不大的评价