跟我一起学习windows驱动编程(引用计数、上下文空间)

本文介绍了Windows驱动编程中关于引用计数的概念,内核对象的_Object_header结构体中的PointerCount和HandleCount用于维护引用计数。同时,探讨了WDF框架对象的非全局特性及通过句柄引用的方式。此外,详细阐述了上下文空间(Context Space)在WDF框架中的应用,包括如何创建、获取设备对象的上下文空间,以及定义函数来从句柄获取对象上下文。
摘要由CSDN通过智能技术生成

引用计数

内核管理器为每个全局对象维护一个引用计数。
内核对象有一个对象头结构体_object_header。
_object_header里变量PointerCount和HandleCount,就是引用计数。
内核程序可以通过对象指针直接使用内核对象,
用户程序通过获取的有效HANDLE间接使用内核对象。

WDF框架对象不是全局对象,因此,对象管理器不管理WDF框架对象。
通过句柄方式引用WDF框架对象。

上下文空间

WDF框架里把上下文成为Context Space。
框架对象可以拥有若干个上下文空间。
WDF创建上下文空间的方法:
定义一个结构体,保存上下文的内容。

//设备对象的上下文
typedef struct _FDO_CONTEXT
{
    WDFDEVICE               WdfDevice;       // 设备对象
    WDFQUEUE                ReadQueue;       // 读请求队列
    WDFQUEUE                WriteQueue;      // 写请求队列
    WDFQUEUE                IoctlQueue;      // 控制请求队列

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值