[适用于 KMDF 和 UMDF]
WdfDeviceStopIdleWithTag 宏递增指定框架设备对象的电源引用计数,并将驱动程序的当前文件名和行号分配给引用。 该宏还会向引用分配标记值。
语法
NTSTATUS WdfDeviceStopIdleWithTag(
_In_ WDFDEVICE Device,
_In_ BOOLEAN WaitForD0,
_In_ PVOID Tag
);
参数
[in] Device
框架设备对象的句柄。
[in] WaitForD0
一个布尔值,指示何时 WdfDeviceStopIdleWithTag 返回。 如果 TRUE,则仅在指定设备进入 D0 设备电源状态后返回。 如果 FALSE,该方法将立即返回。
[in] Tag
框架存储为电源引用的标识标记的驱动程序定义值。
返回值
没有
注解
如果作成功,WdfDeviceStopIdleWithTag 返回STATUS_SUCCESS。
其他返回值包括:
返回代码 | 说明 |
---|---|
STATUS_PENDING | 设备正在异步启动。 |
STATUS_INVALID_DEVICE_STATE | 驱动程序不是设备的电源策略所有者。 |
STATUS_POWER_STATE_INVALID | 设备发生故障,设备无法进入其 D0 电源状态。 |
此方法可能会返回其他 NTSTATUS 值。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
如果驱动程序调用 WdfDeviceStopIdleWithTag 递增引用计数,驱动程序必须调用 WdfDeviceResumeIdleWithTag 来递减计数。
调用 WdfDeviceStopIdleWithTag 而不是 WdfDeviceStopIdle 可提供可在Microsoft调试器中查看的其他信息(标记值、行号和文件名)。 WdfDeviceStopIdleWithTag 使用驱动程序的当前行号和文件名。
可以使用 !wdftagtracker 调试器扩展来查看标记、行号和文件名值。 调试器扩展将标记值显示为指针和一系列字符。
将 !wdfkd.wdfdevice 与详细标志一起使用,并在输出中找到指向 !wdftagtracker 的链接:
kd> !wdfdevice <handle> f
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.15 |
最低 UMDF 版本 | 2.15 |
标头 | wdfdevice.h (包括 Wdf.h) |
图书馆 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | DriverCreate、KmdfIrql、KmdfIrql2 |
另请参阅
在 WDF 中调试电源引用泄漏