共用方式為


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

布爾值變數的指標,例程會寫入值,以指出總線驅動程式是否支援 D3cold。 如果此值為 TRUE,則總線驅動程序支援 D3cold。 如果為 FALSE,則總線驅動程式不支援 D3cold。 如果呼叫失敗,例程會傳回錯誤狀態代碼,而且不會將此變數寫入任何內容。

傳回值

如果成功,GetBusDriverD3ColdSupport 例程會傳回STATUS_SUCCESS。 否則,它會傳回適當的錯誤狀態代碼。

備註

裝置的驅動程式會呼叫 Windows ACPI 驅動程式所實作的這個例程版本,Acpi.sys。 此例程會檢查裝置的父總線驅動程式,以判斷此總線驅動程式是否支援 D3cold 電源狀態。

例如,從 Windows 8 開始,Microsoft 會提供支援 D3cold (xHCI) 驅動程式的收件匣 USB 3.0 eXtensible 主機控制器介面。 有些第三方硬體廠商為其 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