次の方法で共有


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 をサポートしているかどうかを示す値をルーチンが書き込む BOOLEAN 変数へのポインター。 この値が 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 デバイスのドライバーは、親 xHCI コントローラー ドライバーが D3cold をサポートしているかどうかを判断する GetBusDriverD3ColdSupport ルーチンを呼び出すことができます。

次のすべてが当てはまる場合、バス ドライバーは D3cold をサポートします。

  • バス ドライバーは、GUID_D3COLD_SUPPORT_INTERFACE ドライバー インターフェイスを実装します。
  • バス ドライバーは、このインターフェイスに GetBusDriverD3ColdSupport ルーチンを実装します。
  • GetBusDriverD3ColdSupport ルーチンからの出力値は、バス ドライバーが D3cold をサポートしていることを示します。
デバイスのドライバーは 、GetIdleWakeInfo ルーチンを呼び出して、基になるバス ドライバーと ACPI システム ファームウェアがデバイスの D3cold をサポートしているかどうかを判断できます。 この呼び出しが失敗し、エラー状態コードが返された場合、デバイス ドライバーは GetBusDriverD3ColdSupport ルーチンを呼び出して、親バス ドライバーによる D3cold サポートがないために障害が発生しているかどうかを判断できます。

バス上のデバイスは、バス ドライバーがこの切り替えをサポートしている場合にのみ、D3cold サブ状態に切り替えることができます。 バス ドライバーが D3cold をサポートしていない場合、デバイスのファンクション ドライバーが SetD3ColdSupport ルーチンを呼び出して D3cold への切り替えを有効にした場合でも、デバイスは D3cold に入りません。 この場合、 SetD3ColdSupport 呼び出しは効果はありませんが、無害です。

このため、ほとんどのデバイス ドライバーは GetBusDriverD3ColdSupport ルーチンを呼び出す必要はありません。

要件

要件
サポートされている最小のクライアント Windows 8以降で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport