WDF_DRIVER_CONFIG 结构

WDF驱动开发(1)- 一个简单的WDF驱动(non-pnp) 最近因为工作关系,接触了一下WDF驱动开发。 WDF驱动其实是微软公司提供的一套驱动开发的框架。有了这个框架之后,开发驱动会简单一些。WDF本身是从WDM基础上封装而成的。WDF里面封装了很多对象,如WDFDRIVER等。如果要学习使用WDF来开发驱动,个人感觉还是需要WDM的一些基础,不然很多东西挺难理解的。 写了一个简单的WDF驱动(非pnp),基本步骤如下: 创建framework 驱 阅读详情

WDF_DRIVER_CONFIG结构体是WdfDriverCreate接口的输入参数。


语法:

typedef struct _WDF_DRIVER_CONFIG {

  ULONG                     Size;

  PFN_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd;

  PFN_WDF_DRIVER_UNLOAD     EvtDriverUnload;

  ULONG                     DriverInitFlags;

  ULONG                     DriverPoolTag;

} WDF_DRIVER_CONFIG, *PWDF_DRIVER_CONFIG;

 

成员:

Size

这个结构体的大小,以自己为单位;

 

EvtDriverDeviceAdd

Windows驱动的EvtDriverDeviceAdd回调函数指针;

 

EvtDriverUnload

Windows驱动的EvtDriverUnload回调函数指针;

 

DriverInitFlags

驱动初始化标志位,由一个或者多个WDF_DRIVER_INIT_FLAGS类型值构成;

 

DriverPoolTag

驱动定义的内存池标签,是Framework分配给驱动的内存标签。调试时可以显示这个标签。(KMDF 1.5及之后版本支持)

备注:

内存池标签是可选的,通常由1个制4个字母用单引号以相反的顺序组成。标签中每一个字母的ASCII值必须保证在0到127之间。

如果DriverPoolTag是0,Framework将会创建一个默认的内存池标签,这个标签由内核驱动服务的前四个祖母组成。如果这个驱动服务名以“WDF”开始(名字没有区分大小写并且没有包含在单引号中),那么将会用接着的四个字母表示,如果少于四个,就用“FxDx”代替。

驱动必须调用WDF_DRIVER_CONFIG_INIT来完成WDF_DRIVER_CONFIG结构体的初始化。

 

Note:

1. DriverPoolTag的使用必须是在KMDF1.5及之后的版本;

2. 头文件Wdfdriver.h.

基于WDF驱动模型使用WFP框架进行网络层数据修改 阅读详情

相关推荐

WDF驱动开发(2)- CONTEXT和IO QUEUE

WDF里面,大多数对象都支持自定义的数据,比如给设备对象创建一个context。 对象上下文 先自定义一个结构,比如 typedef struct { WDFQUEUE _DefaultQueue; }DEVICE_CONTEXT; 里面放了一个对象WDFQUEUE. 然后给设备对象创建一个上下文内存块。在使用之前先要声明一下这个结构,相当于告诉框架,我们需要使用一个context。

zj510的专栏 8086

Windows驱动开发(一)WDM/WDF驱动概述

距离开发windows驱动已经快要满一年了,从一开始的小白什么都不知道,到现在,也算是有不少心得,准备抽时间写一些比较详细的经验分享,关于驱动开发的文章相对比较少,写的较深入的也不多,所以我想只有大家多共享一些内容,才能进步的更快!话不多说,开始。 本章主要讲述一些入门的概念性内容,有些部分可能会显得不好记,不用慌,等看了后续的文章用到的时候,再回头复习一下,就能理解它的用处了。 大家都知道,...

o0xwh_93150o的博客 4785

深入理解Windows设备驱动程序WDF开发与源码解析

Windows Driver Framework(WDF)是微软提供的一套简化Windows驱动开发的框架,它建立在Windows Driver Model (WDM)之上,旨在减轻驱动开发者的负担,提高驱动开发效率和质量。WDF包含两个主要的子框架:Kernel-Mode Driver Framework (KMDF)和User-Mode Driver Framework (UMDF)。

weixin_42610671的博客 1190

亲手解剖WDF驱动

亲手解剖WDF驱动 创建一个WDF驱动(non-pnp) WDF驱动其实是微软公司提供的一套驱动开发的框架。 有了这个框架之后,开发驱动会简单一些。WDF本身是从WDM基础上封装而成的。WDF里面封装了很多对象,如WDFDRIVER等。如果要学习使用WDF来开发驱动,个人感觉还是需要WDM的一些基础,不然很多东西挺难理解的。 写了一个简单的WDF驱动(非pnp),基本步骤如下: 创建framew...

ai agent 1566

杰理的蓝牙芯片的key是什么?以及该如何添加key?杰理key文件原理

很多的工程师,在开发杰理蓝牙芯片的第一步就会有一个很深的疑惑,关于key的 1、什么是key文件? 2、Key文件是如何产生的? 3、为什么需要他key文件? 4、如何添加key文件? 5、以及实际开发中的一些报错该如何处理?

qyvhome的博客 4102

GOM引擎单机传奇架设全攻略——从DBC2000配置到登录器生成

本文详细解析了使用GOM引擎架设单机传奇的完整流程,从DBC2000的安装配置、服务端部署、引擎控制器设置,到登录器生成与客户端补丁放置。文章重点解决了单机架设中的常见问题,如数据库路径配置、IP地址设置及Key.lic文件处理,旨在帮助玩家快速搭建稳定的个人游戏环境,体验GM乐趣。

weixin_28318011的博客 636

WDF----PCI设备初始化

作为微软新一代驱动开发模型,WDF逐渐取代WDM成为驱动程序开发主流, 下面以AMCC S5933驱动代码为例,研究下WDF模式下PCIe设备的驱动开发是什么样的流程。 和WDM相似,系统启动后,会调用驱动程序里的入口函数DriverEntry(),代码如下: NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN

门没锁的专栏 4612

手把手教你用TiggerRamDisk绕过iPhone/iPad激活锁(支持iOS16.3,Win/Mac双平台保姆级教程)

本文详细介绍了如何使用TiggerRamDisk工具绕过iPhone/iPad的激活锁,支持iOS16.3系统,并提供Windows和Mac双平台的保姆级教程。从工具准备、设备连接到核心解锁流程,一步步指导用户完成操作,帮助二手设备或旧设备重获新生。

weixin_29323493的博客 927

WdfDriverCreate

WDF的DriverEntry实例: NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { WDF_DRIVER_CONFIG config; //此结构说明这个驱动程序的一些可配置项,包括EvtDriverDeviceAdd和Ev

Lydia的博客 3905

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 281

大模型训练流程(四):PPO强化学习实战与调优指南

本文详细解析了大模型训练中PPO强化学习的实战应用与调优技巧,涵盖RLHF核心原理、PPO算法实现及显存优化策略。通过具体案例和代码示例,指导开发者有效提升模型回答质量与安全性,避免常见训练陷阱。

weixin_29051811的博客 438

Windows驱动中的驱动对象

Windows中的驱动对象,顾名思义,就代码驱动程序本身。下面给出WDM中的驱动对象的数据结构的定义。                 这里我们只介绍几个数据成员,其它的成员以后再介绍。         DeviceObject,代表驱动程序支持的第一个设备,再通过设备对象的水平结构,也及时DeviceOjbect中的NextDevice,我们可以把所有这个驱动程序支持的一组设备,通过设备

Z18_28_19的专栏 1743

基于Python实现的捕鱼达人小游戏源代码+使用说明

摘要: 本文介绍了一款自制的捕鱼达人小游戏,使用Python3和Pygame模块开发。游戏包含完整的资源文件(图片、音效、字体)和源码结构(11个功能模块),实现了大炮移动射击、特殊子弹、炸弹、难度递增等核心玩法。安装需配置Python环境和Pygame模块,运行main.py即可启动游戏。游戏支持键盘控制(方向键移动、空格射击、1键放炸弹),默认时长600秒,包含开始菜单、游戏界面和结束界面。所有代码均有详细注释,项目已开源并提供下载链接。(150字)

2301_76484015的博客 669

Windows驱动中的队列

今天还好!可以很早下班,而且主要是不太忙了,所以以后要加紧更新了!希望今年可以对windows驱动做个很好的总结。                 今天想介绍下,跟IRP也非常相关的队列。这里只简单介绍下,后续还会修改。我们知道在WDM驱动模型中,我们的IRP,需要排队,因为一下无法处理那么多的IRP,怎么办了,那就需要队列。队列的对象一般放在我们的设备扩展中。这里一般我们还会用到两个函数IoS

Z18_28_19的专栏 2950

Python爬虫零基础入门【第九章:实战项目教学·第17节】内容指纹去重:URL 变体/重复正文的识别!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 826

系规备考论文:论IT服务规划设计

系规备考论文:论IT服务规划设计

liuxu324的博客 1146

WDFQUEUE的回调函数

在创建一个WDFQUEUE对象之前,可以通过设定WDF_IO_QUEUE_CONFIG,来注册队列的回调方法。 WDF_IO_QUEUE_CONFIG是一个结构体,它的具体结构如下: typedef struct _WDF_IO_QUEUE_CONFIG {     ULONG                                       Size;

1388

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

新的 Windows 驱动框架 WDF (Windows Driver Foundation)

http://www.blogcn.com/user8/flier_lu/index.html?id=2507847     WDM (Windows Driver Model) 都还没有完全弄明白,M$ 居然在 WinHEC 上又推出了将全面取代 WDM 的 WDF (Windows Driver Foundation)。OSR Online 上几篇文章简要地介绍了 WDF 的一些新特性,并在 

Flier's Sky 3184

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

WDF驱动入门

一个简单的WDF驱动 要让XP支持WDF驱动需要安装一个插件 链接: https://pan.baidu.com/s/1eL-5EVfNJZeatIBkRTrvBw 提取码: kwvw 复制这段内容后打开百度网盘手机App,操作更方便哦 #include <ntddk.h> #include <wdf.h> VOID EvtDriverUnload(WDFDRIVER Driver) { KdPrint(("卸载成功\n")); } NTSTATUS DriverEntry(PD

qq_41490873的博客 1534

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

驱动程序(4) WDF下DMA传输的驱动程序代码详细说明之driver.c

从这一篇开始介绍几个比较重要的源文件和应用程序,并且会对其中一些关键代码进行说明。这些代码流程都是本人亲身测试可行的,但是由于当时调试时杂七杂八的东西加的太多,现在看起来有的地方的代码风马牛不相及,如果完全照搬的话可能行不通的,还是需要各位读者自行理解然后加以改进的。当然如果有问题也欢迎各位读者指出更正,谢谢! driver.c /*++ Module Name: driver.c Abstrac...

a4642313的博客 2868

WDF程序参数解析

为什么用注册表存储驱动信息RegistryPath 驱动加载非常早,甚至仅仅晚于windows内核,这时文件系统还没建立,驱动程序如果在此时需要享有自己的可操作空间,只有注册表可使用。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services为驱动信息存储位置。 WDF_DRIVER_CONFIG 驱动程序的一些可配置参数,其中包含了EvtDriverDeviceAdd和EvtDriverUnload的入口地址以及驱动初始化时的一些标志和分配内存使用的tag值。

qq_33400948的博客 1289

WDF模型驱动程序开发

WDF驱动程序开发 1. 引言 设备驱动程序是硬件设备连接到计算机系统的软件接口,任何设备都必须有相应的驱动程序才能在计算机系统上正常工作。设备驱动程序的优劣直接关系到整个系统的性能和稳定性,因此,设计和开发稳定高效的驱动程序具有重要意义。 WDF(Windows Driver Foundation)是微软提出的下一代全新的驱动程序模型,它是在WDM(windows Driv...

LindaXu1220的博客 754

WDF驱动框架,简单IO(METHOD_BUFFERED)

基本框架: #include<ntddk.h> #include<wdf.h> #define IOCTL_TEST CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ALL_ACCESS) #define DEVICE_NAME L"\\Device\\WDF_DeviceName" #define S...

吾无法无天的博客 1616

windows驱动开发-WDF编程

windows驱动开发-WDF编程

大草的博客 4485

wdf模型开发虚拟磁盘

主要搞清楚物理磁盘的结构 整个物理磁盘的第一个扇区为MBR,BIOS加载完后将调用MBR。MBR中主引导程序负责从活动分区中装载和运行系统引导程序。MBR的引导程序后面是硬盘分区表(DPT),用占64字节,记录物理磁盘的每个逻辑分区的起始位置,从这个起始位置开始的部分成为DBR(系统引导记录)。DPT的后面是有效结束标志(0x55AA),没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁

World-wang 1360
上一篇: WinDBG实时打印Windows驱动或者内核信息的方法
下一篇: WDF_INTERRUPT_CONFIG 结构
枫★曦
博客等级 码龄19年 251粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值