GET_D3COLD_CAPABILITY回调函数 (wdm.h)

GET_D3COLD_CAPABILITY回调例程用于D3COLD_SUPPORT_INTERFACE中的两个不同的函数:

  • GetD3ColdCapability - 报告此设备是否能够进入 D3cold 设备电源状态。
  • GetBusDriverD3ColdSupport - 报告基础总线驱动程序和 ACPI 系统固件是否支持此设备的 D3cold。

语法

GET_D3COLD_CAPABILITY GetD3coldCapability;

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

参数

[in, optional] Context

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

[out] D3ColdSupported

指向布尔变量的指针,该变量例程将写入一个值以指示 D3cold 支持状态。 此值的含义取决于调用哪个函数:

  • GetD3ColdCapability:如果为 TRUE,则设备能够进入 D3cold。 如果为 FALSE,则设备无法输入 D3cold。
  • GetBusDriverD3ColdSupport:如果为 TRUE,则总线驱动程序支持 D3cold。 如果为 FALSE,则总线驱动程序不支持 D3cold。

如果调用失败,例程将返回错误状态代码,并且不会向此变量写入任何内容。

返回值

如果GET_D3COLD_CAPABILITY例程成功,则返回STATUS_SUCCESS。 否则,它将返回适当的错误状态代码。

言论

此回调函数类型用于 D3COLD_SUPPORT_INTERFACE中的两个不同的例程:

  • GetD3ColdCapability - 报告此设备是否能够进入 D3cold 设备电源状态。
  • GetBusDriverD3ColdSupport - 报告基础总线驱动程序和 ACPI 系统固件是否支持此设备的 D3cold。

GetBusDriverD3ColdSupport 用法

设备的驱动程序调用由 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