学习的内容是基于WDF框架的Windows驱动开发

基础知识

  1. NT -> WDM -> WDF

    每个框架都是由其上一个框架发展而来的,主要原因是因为其上一个框架不易理解难于开发

  2. 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协议 。转载请注明出处!