WdfDeviceStopIdleWithTag 宏 (wdfdevice.h)

[适用于 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)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL 请参见“备注”部分。
DDI 符合性规则 DriverCreate、KmdfIrql、KmdfIrql2

另请参阅

在 WDF 中调试电源参考漏孔

WdfDeviceResumeIdle

WdfDeviceResumeIdleWithTag

WdfDeviceStopIdle