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 的 xHCI) 驱动程序 (内置 USB 3.0 扩展主机控制器接口。 某些第三方硬件供应商为其 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