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