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 |