设备扩展(DEVICE_EXTENSION)
设备扩展(DEVICE_EXTENSION)是与设备对象相关的另一种重要的数据结构。可以用它来保存与特定设备关联的信息。设备扩展其实只是一个未分页的池,由驱动开发者来定义它的大小和内容。并由I/O管理器自动把它分配给设备对象,即设备对象的PVOID DeviceExtension字段。由于此结构是驱动开发者自定义的,所以必须要让系统知道需要给此结构预留多少空间,因此要把设备扩展结构的大小作为参数传递给IoCreateDevice函数。I/O管理器的IoCreateDevice函数将为设备对象和设备扩展对象在非分页内存池内申请内存。
驱动的设备对象中有一个字段是设备扩展
该设备扩展的大小是不固定的,依据在创建设备对象时给定的大小分配内存
例如:
typedef struct _DEVICE_EXTENSION {ULONG number;PDEVICE_OBJECT pDevice;UNICODE_STRING ustrDeviceName; //设备名称UNICODE_STRING ustrSymLinkName; //符号链接名
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
//创建设备对象
status = IoCreateDevice( pDriver, //驱动对象的指针sizeof(DEVICE_EXTENSION), //为扩展设备分配的字节数,扩展设备是自己定义的数据结构,可以当做全局变量使用&DeviceName, //该设备的名字,通过设备名来区分不同的设备FILE_DEVICE_UNKNOWN, //设备的类型FILE_DEVICE_SECURE_OPEN, //大多数的驱动设备设置为此值FALSE, //设备对象是否独占设备,大多数情况设置为FALSE 不独占&pDeviceObj //返回来的设备对象指针);(PDEVICE
设备扩展(DEVICE_EXTENSION)相关推荐
- adrms移动设备扩展插件_如何在所有移动设备上扩展网站
adrms移动设备扩展插件 我们大多数人都可以方便地访问互联网,上网购物,甚至使用我们的移动设备支付账单. 根据Forrester的一项研究, <数字商业势在必行> ,美国43%的银行客户 ...
- W806 SDIO 设备 扩展 荔枝派 V3s IO 使用
全志V3s 不论焊接还是使用很方便,唯一缺点就是IO不够,偶然发现联德盛 W806 竟然自带SDIO 设备接口,当然肯定还有ESP32模块 也是带的(,这里并不适用),选择SDIO 优点是速度快,方便 ...
- Windows磁盘驱动基础教程
本文讲述Windows磁盘驱动的主要结构功能与编写方法基础.本文描述的内容仅限于软件层面,并不与具体的硬件相关. 1.磁盘驱动基础 不少人把文件系统驱动和磁盘驱动混为一谈.实际上文件系统驱动应该与磁盘 ...
- 应用程序编程接口大全_应用程序编程接口101
应用程序编程接口大全 Do apps like Uber, Pokémon Go and Zomato build their own maps to show where available car ...
- 程序员过失泄露代码违法吗_软件过失的23种模式
程序员过失泄露代码违法吗 Ever since the Gang of Four came down from the mountaintop with their stone tablets, li ...
- 制作像UberEats和Deliveroo这样的移动应用程序需要多少钱
Have you been into the food industry and planning to take your venture to the next level with on-dem ...
- [ZZ]Windows磁盘驱动基础教程
本文讲述Windows磁盘驱动的主要结构功能与编写方法基础.本文描述的内容仅限于软件层面,并不与具体的硬件相关. 1.磁盘驱动基础 不少人把文件系统驱动和磁盘驱动混为一谈.实际上文件系统驱动应该与磁盘 ...
- 基于FileDisk介绍磁盘驱动程序
搞了好久,怎么操作文件都总是进不去MJ_CREATE,没道理,所以找到一个好的资料分享一下,驱动界高人还是蛮多的,看懂这个代码,到时候自己写一个简化版的FILEDISK驱动玩玩,算是学了这么久驱动后的 ...
- Windows驱动开发 - 设备对象初步学习
新建一个myhellodevice.c: 代码如下:makefile和sources如前文: #include <ntddk.h>#define NTDEVICE_NAME_STRING ...
最新文章
- P1223 排队接水
- 他考研3次,读博7年,英语极烂,却做出诺奖级成果,并获2020年度“菲列兹·伦敦奖”...
- SAP MM ME21N 创建委外采购PO报错 - Not possible to determine any components - 之对策
- Android Paint应用之自定义View实现进度条控件
- 共享文件夹的网络路径_Win10创建网络共享文件夹|设置局域网共享文件夹
- linux内存实验,LINUX编程-实验五 内存管理实验
- 新来的妹纸问我 AJAX 请求为什么不安全?没有回答出来。。。
- project设置6天工作制日历
- 安兔兔发布9月份Android性能榜:855霸榜,华为竟垫底
- xlsxwriter php,Xlsxwriter
- Python敏感词过滤DFA算法+免费附带敏感词库
- 最新QQ坦白说消息查看发送者
- qt自定义窗口标题栏
- 使用cp命令提示:略过目录...
- 一起学习log4cxx
- R语言中的Wilcoxon符号秩检验与配对学生t检验
- 计算机视觉、模式识别、机器学习常用牛人主页链接
- Python 医学知识图谱问答系统(一),建立医学知识图谱,基于neo4j知识图谱的医学问答体系
- Excel 2010 SQL应用116 分组统计之GROUP BY续
- 享元模式--大量的飞龙