- 2
- 0
- 约1.34万字
- 约 12页
- 2026-11-06 发布于北京
- 举报
驱动与应用程序的通信至关重要。内核执行代码后需将结果动态反馈至应用层,但由于二者处于不同地址
空间,必须借助通信机制实现数据交互。微软了三种通信方式,下文将首先介绍通过ReadFile系列
函数实现的通信模式。
简而言之,系统支持的通信模式可归纳为三种。
缓冲式读写(
DO_BUFFERED_IO)直接式读写
(DO_DIRECT_IO)其他读写方式
通过ReadFile,WriteFile系列函数实现的通信机制属于缓冲通信模式。该模式下,操作系统会将应用
层的数据副本传递至内核。当应用层调用ReadFile,WriteFile时,驱动内会自动触发IRP_MJ_READ与
IRP_MJ_WRITE派遣函数,开发者可在其中对数据进行处理。
首先需要实现初始化各类派遣函数的案例,以下代码展示通用初始化派遣函数的基本框架:分别处理
IRP_MJ_CREATE创建派遣和IRP_MJ_CLOSE关闭派遣。此外,函数DriverDefaultHandle用于初
始化其他派遣,即将CREATE/CLOSE之外的派遣全部设为初始值。当然,省略这段代码也不影响实际
执行。
#include
ntifs.h
SymLinkName;
//
局部变量
symLinkName
原创力文档

文档评论(0)