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 結構之 Context 成員的值。
[out] D3ColdSupported
例程寫入值以指出 D3cold 支持狀態的 BOOLEAN 變數指標。 此值的意義取決於所呼叫的函式:
- 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 |