KMDF
微软公司推出的Windows驱动程序基础
核心模式驱动程序架构是微软公司推出的Windows驱动程序基础(Windows Driver Foundation)之一,建构Windows XP与Windows Server 2003的核心模式(Kernel-Mode)驱动程序所需的基本功能,包括对即插即用(PNP)、电源管理(Power Manager)、I/O队列、直接存储器访问(DMA)、Windows Management Instrumentation(WMI)和同步处理等的完整支持。KMDF的设计并不能用来取代WDM,它提供“Skeletal WDM”建置来替代WDM;当前KMDF并不支持总线筛选驱动程序(Bus Filter Driver)。
简介
Kernel-Mode Driver Framework当前支持下列类型的核心模式(kernel mode)驱动程序之创建:
KMDF是可重新进入程序库(Reentrant Library)。
与WDM的关系
自Windows 2000开始,开发驱动程序必以WDM为基础的,但开发难度太大,无法像用户模式应用程序开发那样容易。KMDF支持驱动程序在Windows Driver Model环境中撰写驱动程序,简化其中的过程,但是KMDF的设计并不能用来取代WDM,它提供“Skeletal WDM”建置来替代WDM。早期的WDM可支持Windows 98Windows MeWindows 2000Windows XP;至于WDF计划支持Windows XP,以及更新的版本。
KMDF系以对象为基底创建于WDM架构之上。不同的功能有不同的对象,KMDF在实现上包含了:
驱动程序进入点
在Windows操作系统中驱动程序的起始点都是在DriverEntry函数,DriveryEntry是驱动程序的进入点(entry point)。在DriverEntry函数的实现里,你需要具现化(instantiate)你的WDFDRIVER对象,并且告知WDF framework要去哪里调用你的系统。
Add Device
EvtDeviceAdd函数,在系统发现新硬件插入时被调用。这个函数将挑起WDF驱动程序架构的大部分工作,EvtDeviceAdd事件被唤起之余一定会带出一个WDFDRIVER对象,并且指向一个WDFDEVICE_INIT结构。在设备产生(device crated)之前,必先进行初始化的动作。如果EvtDeviceAdd运行成功,那么EvtDevicePrepareHardware是架构下一个被运行的函数,用以保证驱动程序能够访问硬件。
Prepare Hardware
如果EvtDeviceAdd顺利运行成功,那么EvtDevicePrepareHardware是架构下一个被运行的函数,用以保证驱动程序能够访问硬件。
IO requests
参考资料
最新修订时间:2023-03-20 19:07
目录
概述
简介
与WDM的关系
参考资料