NT式驱动基本结构

DriverEntry是NT驱动的初始化入口,由System进程调用。在驱动加载时,系统创建驱动对象并查询注册表项。DriverEntry接收到驱动对象和设备服务键的指针。IoCreateDevice创建的设备名仅内核模式识别,用户模式应用可通过符号链接访问。IoCreateSymbolicLink用于创建设备的符号链接,如C盘和D盘。符号链接是设备对象的别名,允许用户模式应用程序识别。
摘要由CSDN通过智能技术生成
1.对于NT式驱动来说,主要的函数是DriveEntry函数,卸载函数,以及各个IRP的派遣函数
2.驱动加载过程与驱动入口函数(DriverEntry)
   NTSTATUS DriveEntry(IN PDRIVER_OBJECT pDriverobject,
  IN PUNICODE_STRING pRegistryPath);//函数名可以自己定义

DriverEntry主要是对驱动程序进行初始化工作,它由系统进程(System)调用。驱动加载的时候,System进程启动新的线程新的线程,调用执行体组件的对象管理器,创建一个驱动对象。另外,System进程调用执行体组件中的配置管理程序,查询此驱动程序对应的注册表中的项。System进程调用DriverEntry例程时,同时传进两个参数。pDriverobject 指向刚被创建驱动对象的指针,pRegistryPath指向设备服务键的键名字符串的指针。这个键名有时候需要保存下来,因为这个字符不是长期存在的(函数返回后可能消失)。如果以后想使用这个UNICODE 字符串就必须先把它复制到安全的地方。

下面是一个NT框架代码:

#include<ntddk.h>


//自己第一扩展DO结构体
typedef struct _DEVICE_EXTENSIONN
{
	PDEVICE_OBJECT pDevObj;//指向DO
	UNICODE_STRING ustrDevName;
	UNICODE_STRI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值