https://blog.csdn.net/zj510/article/details/16987349
WDF里面,大多数对象都支持自定义的数据,比如给设备对象创建一个context。
对象上下文
先自定义一个结构,比如
typedef struct
{
WDFQUEUE _DefaultQueue;
}DEVICE_CONTEXT;
里面放了一个对象WDFQUEUE. 然后给设备对象创建一个上下文内存块。在使用之前先要声明一下这个结构,相当于告诉框架,我们需要使用一个context。
WDF_DECLARE_CONTEXT_TYPE(DEVICE_CONTEXT);
如果不需要context,那么可以这么初始化一个设备属性,WDF_OBJECT_ATTRIBUTES_INIT(&object_attribs);
如果需要context,那么要换个函数,WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&object_attribs, DEVICE_CONTEXT); 这样就会分配一个DEVICE_CONTEXT的内存块,并且将内存块的指针保存到WDF_OBJECT_ATTRIBUTES里面。看一下WDF_OBJECT_ATTRIBUTES的定义:
<