问题描述
我在使用UMDF驱动程序从return collection.find()
.map(Document::toJson)
.into(new ArrayList<>());
回调函数检索设备注册表中存储的数据时遇到问题。这样的回调函数仅将EVT_WDF_TIMER
对象作为其唯一参数。为了能够访问UMDF中的注册表,WDFTIMER
需要一个指向WdfDeviceOpenRegistryKey
对象的指针。在调用回调函数之前,我的WDFDEVICE
由WDFTimer
创建,它在计时器过去之后调用回调函数。我还提供了适当的WdfTimerCreate
,其中一个属性是WDF_OBJECT_ATTRIBUTES
,我在其中分配了WDFOBJECT ParentObject
对象。
现在,我希望可以检索在WDFDEVICE
中添加的WDFDEVICE
对象,但是似乎无法从WDF_OBJECT_ATTRIBUTES
参数访问该对象。我不禁要问,有什么方法可以从WDFTIMER
回调函数中检索指向WDFDEVICE
的指针?
解决方法
您可以使用WdfTimerGetParentObject 来检索WDFOBJECT。