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)
图书馆 Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF)
IRQL 请参阅“备注”部分。
DDI 符合性规则 DriverCreate、KmdfIrql、KmdfIrql2

另请参阅

在 WDF 中调试电源引用泄漏

WdfDeviceResumeIdle

WdfDeviceResumeIdleWithTag

WdfDeviceStopIdle