学习的内容是基于WDF框架的Windows驱动开发
基础知识
- NT -> WDM -> WDF
每个框架都是由其上一个框架发展而来的,主要原因是因为其上一个框架不易理解难于开发
- WDF简介
WDF全称Windows驱动框架(Windows Driver Frameworks)
WDF两种级别的驱动程序用户级(UMDF–(User-Mode Driver Framework))
是以 .dll 结尾的文件
内核级(KMDF–(Kernel-Mode Driver Framework))
是以 .sys 结尾的文件
可与其硬件直接会话,通常会通过HAL(硬件抽象层)访问硬件
所有的事物由对象表示,如Driver、Device等每个对象都有属性、方法、事件(有面向对象编程基础的都应该知道)
各种事件处理由事件回调函数处理
必须包含 DriverEntry 函数,像C语言中的 main 函数附上基本的DriverEntry例子
`
c
#include <ntddk.h>
#include <wdf.h>
NTSTATUS DriverEntry(IN PDRIVER_OBJECT driver, IN PUNICODE_STRING reg_path) {
WDF_DRIVER_CONFIG config;
NTSTATUS status;
//初始化驱动对象的配置结构,设置DeviceAdd函数入口(此处为NULL)
WDF_DRIVER_CONFIG_INIT(&config, NULL);
//创建驱动对象,没有驱动对象和驱动对象环境变量结构
status = WdfDriverCreate(
driver,
reg_path,
WDF_NO_OBJECT_ATTRIBUTES, //驱动对象环境变量结构
&config,
WDF_NO_HANDLE //驱动对象
);
return status;
}
`
Windows驱动开发 Windows驱动开发 配置环境 Windows wdf驱动开发
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!