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。
仅当总线驱动程序支持此转换时,总线上的设备才能转换为 D3cold 子状态。 如果总线驱动程序不支持 D3cold,则设备永远不会进入 D3cold,即使设备的函数驱动程序调用 SetD3ColdSupport 例程,以便转换到 D3cold。 在这种情况下,SetD3ColdSupport 调用无效,但无害。
因此,大多数设备驱动程序从不需要调用 GetBusDriverD3ColdSupport 例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h (包括 Wdm.h) |
IRQL | PASSIVE_LEVEL |