UMDF:在 EVT_WDF_TIMER 回调函数中访问设备注册表项

UMDF: Access device registry key inside a EVT_WDF_TIMER callback function

我在使用 UMDF 驱动程序从 EVT_WDF_TIMER 回调函数检索存储在设备注册表中的数据时遇到问题。这样的回调函数只有 WDFTIMER 对象作为其唯一参数。为了能够访问 UMDF 中的注册表,WdfDeviceOpenRegistryKey 需要一个指向 WDFDEVICE 对象的指针。在回调函数被调用之前,我的 WDFTimer,它在计时器结束后调用回调函数,由 WdfTimerCreate 创建。我也提供了适当的 WDF_OBJECT_ATTRIBUTES,其中一个属性是 WDFOBJECT ParentObject,我在其中分配了 WDFDEVICE 对象。

现在,我希望我可以检索我在 WDF_OBJECT_ATTRIBUTES 中添加的 WDFDEVICE 对象,但似乎无法从 WDFTIMER 参数访问它。我想知道,有什么方法可以从 EVT_WDF_TIMER 回调函数中检索指向我的 WDFDEVICE 的指针?

您可以使用 WdfTimerGetParentObject 检索 WDFOBJECT。