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。
我在使用 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。