WDF驱动中,当我们写下WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(FDO_DATA, FdoGetData)
到底发生了什么?
看下wdfobject.h文件中的WDF_DECLARE_CONTEXT_TYPE_WITH_NAME的宏定义:
到底发生了什么?
看下wdfobject.h文件中的WDF_DECLARE_CONTEXT_TYPE_WITH_NAME的宏定义:
#define WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(_contexttype, _castingfunction) \
WDF_DECLARE_TYPE_AND_GLOBALS( \
_contexttype, \
WDF_GET_CONTEXT_TYPE_INFO(_contexttype), \
NULL, \
WDF_TYPE_DEFAULT_SECTION_NAME) \
WDF_DECLARE_CASTING_FUNCTION(_contexttype, _castingfunction)
有点眼花,其中又调用了2个宏,所以继续看这2个宏定义:
#define WDF_DECLARE_TYPE_AND_GLOBALS(_contexttype, _UniqueType, _GetUniqueType, _section)\
typedef _contexttype* WDF_TYPE_NAME_POINTER_TYPE(_contexttype); \
WDF_E