GET_D3COLD_CAPABILITY回调函数 (wdm.h)

GetBusDriverD3ColdSupport 例程使设备的驱动程序能够查询枚举总线驱动程序是否支持 D3cold 设备电源状态。

语法

GET_D3COLD_CAPABILITY GetD3coldCapability;

NTSTATUS GetD3coldCapability(
  [in, optional] PVOID Context,
  [out]          PBOOLEAN D3ColdSupported
)
{...}

参数

[in, optional] Context

指向特定于接口的上下文信息的指针。 调用方将此参数设置为接口 D3COLD_SUPPORT_INTERFACE 结构的 Context 成员的值。

[out] D3ColdSupported

指向该例程将值写入到的 BOOLEAN 变量的指针,用于指示总线驱动程序是否支持 D3cold。 如果此值 TRUE,则总线驱动程序支持 D3cold。 如果 FALSE,则总线驱动程序不支持 D3cold。 如果调用失败,例程将返回错误状态代码,并且不会向此变量写入任何内容。

返回值

GetBusDriverD3ColdSupport 例程在成功时返回STATUS_SUCCESS。 否则,它将返回适当的错误状态代码。

言论

设备的驱动程序调用由 Windows ACPI 驱动程序(Acpi.sys)实现的此例程的版本。 此例程检查设备的父总线驱动程序,以确定此总线驱动程序是否支持 D3cold 电源状态。

例如,从 Windows 8 开始,Microsoft提供支持 D3cold 的收件箱 USB 3.0 eXtensible 主机控制器接口 (xHCI) 驱动程序。 某些第三方硬件供应商为其 xHCI 控制器提供 Windows 驱动程序,但这些驱动程序可能不支持 D3cold。 USB 3.0 设备的驱动程序可以调用 GetBusDriverD3ColdSupport 例程,以确定父 xHCI 控制器驱动程序是否支持 D3cold。

如果以下所有情况均属实,则总线驱动程序支持 D3cold:

  • 总线驱动程序实现GUID_D3COLD_SUPPORT_INTERFACE驱动程序接口。
  • 总线驱动程序在此接口中实现 GetBusDriverD3ColdSupport 例程。
  • GetBusDriverD3ColdSupport 例程中的输出值指示总线驱动程序支持 D3cold。
设备的驱动程序可以调用 GetIdleWakeInfo 例程,以确定基础总线驱动程序和 ACPI 系统固件是否支持设备的 D3cold。 如果此调用失败并返回错误状态代码,则设备驱动程序可以调用 GetBusDriverD3ColdSupport 例程,以确定失败是由父总线驱动程序缺少 D3cold 支持引起的。

仅当总线驱动程序支持此转换时,总线上的设备才能转换为 D3cold 子状态。 如果总线驱动程序不支持 D3cold,则设备永远不会进入 D3cold,即使设备的函数驱动程序调用 SetD3ColdSupport 例程,以便转换到 D3cold。 在这种情况下,SetD3ColdSupport 调用无效,但无害。

因此,大多数设备驱动程序从不需要调用 GetBusDriverD3ColdSupport 例程。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 桌面
标头 wdm.h (包括 Wdm.h)
IRQL PASSIVE_LEVEL

另请参阅

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport