共用方式為


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 結構 內容 成員的值。

[out] D3ColdSupported

布爾值變數的指標,例程會寫入值,以指出總線驅動程式是否支援 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。
裝置的驅動程式可以呼叫 GetIdleWakeInfo 例程,以判斷基礎總線驅動程式和ACPI系統韌體是否支援裝置的 D3cold。 如果此呼叫失敗並傳回錯誤狀態代碼,裝置驅動程式可以呼叫 GetBusDriverD3ColdSupport 例程,以判斷失敗是否由父總線驅動程式缺乏 D3cold 支援所造成。

只有在總線驅動程式支援此轉換時,總線上的裝置才能轉換至 D3cold 子狀態。 如果總線驅動程式不支援 D3cold,則即使裝置的函式驅動程式呼叫 SetD3ColdSupport 例程,裝置也永遠不會進入 D3cold,讓轉換至 D3cold。 在此情況下,SetD3ColdSupport 呼叫沒有作用,但無害。

因此,大部分設備驅動器都不需要呼叫 GetBusDriverD3ColdSupport 例程。

要求

要求 價值
最低支援的用戶端 從 Windows 8 開始提供。
目標平臺 桌面
標頭 wdm.h (包括 Wdm.h)
IRQL PASSIVE_LEVEL

另請參閱

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport