NT设备扩展 在WDF中的使用方式

定义扩展结构

typedef struct _DRIVER_CONTEXT
{
	ULONG Number;
	WCHAR sz[1024];
	ULONG Boolean;
}DRIVER_CONTEXT, *PDRIVER_CONTEXT;

//*********   申明一个函数GetDriverContext,用于访问该结构 在WDF驱动中必须这样做 访问方式下面介绍   *********
WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(DRIVER_CONTEXT, GetDriverContext)

初始化对象

WDF_OBJECT_ATTRIBUTES DriverAttributes;
//该宏是吧扩展结构保到对象属性中
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&DriverAttributes, DRIVER_CONTEXT);

创建带有扩展结构的对象

WdfDriverCreate(pDriverObject, 
				RegistryPath,
				 &DriverAttributes,  //这了就指定了扩展结构,创建对象时,会分配一个内存来给扩展结构使用.
				  &WdfConfig, 
				  &WdfDriver
				  );

访问扩展结构

WDFDEVICE Driver;  //需要有这个对象才能访问到
PDRIVER_CONTEXT  pDriverContext = GetDriverContext(Driver);

延伸

思考了一下,WDF驱动中,创建对象时,如果有WDF_OBJECT_ATTRIBUTES 类型的参数.,那么应该是可以用这种方式来访问扩展结构

创建设备函数WdfDeviceCreate的第二个参数就是上述类型,所以可以使用扩展结构来保存全局信息.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值