一、概念介绍
NT是驱动模型:NT式驱动程序模型是一种比较老式的驱动程序模型,但适用于现有的Windows系统。NT式驱动模型没有固定的形式,最简单的NT式驱动程序模型这一特点,程序开发者可以编写一个完全不支持硬件工作的驱动程序,却可以将代码运行在内核模式中。
WDM驱动程序模型:WDM式驱动程序在NT式驱动程序的基础上,还必须:
1、包括wdm.h头文件,问不是ntddk.h(wdm.h是ntddk.h的一部分)
2、被设计为一种WDM驱动程序类型,如总线驱动、功能驱动,过滤驱动等;
3、创建设备对线属于WDM设备对象类型(物理设备对象、功能设备对象、过滤设备对象);
4、支持即插即用(inf实现的功能);
5、支持电源管理;
6、支持Windows管理规范
二、加载驱动
NT设备驱动程序的动态加载主要是由服务控制管理程序组件来完成的。Windows服务可以在系统启动时加载,用户也可以按需在服务控制平台开启或者关闭服务。程序员可以通过Windows提供的相关服务函数进行加载或者卸载该服务等。服务程序更是可以在用户还没有登录系统时,就载入系统并且被执行。
加载NT驱动一般分为4个步骤:
1、调用OpenSCManager打开SCM管理器;
2、调用OpenService打开此项服务
3、调用ControlService传递SERVICE_CONTROL_STOP来停止服务;
4、调用DeleteService卸载此项服务;
5、关闭句柄;
和NT式驱动不同,WDM式驱动程