次の方法で共有


IAdapterPowerManagement::P owerChangeState メソッド (portcls.h)

PowerChangeState メソッドは、デバイスが新しい電源状態に変更されることを要求します。

構文

void PowerChangeState(
  [in] POWER_STATE NewState
);

パラメーター

[in] NewState

デバイスに対して要求される新しい電源状態を指定します。 このパラメーターは、POWER_STATE型の和集合です。 新しい電源状態 (NewState.DeviceState) には、次の表に示す DEVICE_POWER_STATE 列挙値のいずれかを指定できます。

電源の状態 意味
PowerDeviceD0 完全な電源状態 (D0)。 このコードは、現在の電源状態の関数である可能性があります。 新しい状態を保存します。 このローカル値は、プロパティ アクセスをキャッシュするタイミングと、ドライバーがハードウェアにアクセスすることを許可するタイミングを決定するために使用されます。
PowerDeviceD1 D0 に戻るために必要な待機時間に関して待機時間が最も短いスリープ状態
PowerDeviceD2 中待機時間のスリープ状態。 この状態では、デバイス ドライバーはハードウェアに触れることを想定できないため、D0 に入ると、すべてのアクセスをキャッシュし、ハードウェアを復元する必要があります。
PowerDeviceD3 完全な休止状態であり、待機時間が最も長いスリープ状態です。 ドライバーは、この状態でハードウェアにアクセスすることはできませんし、D0 または D1 に戻ると、ハードウェア アクセスをキャッシュし、ハードウェアを復元する必要があります。

戻り値

何一つ

備考

PortCls は、IRP_MN_SET_POWER power IRP に応答して PowerChangeState メソッドを呼び出します。 この呼び出しは失敗してはなりません。 PortCls とシステムは、PowerChangeState 呼び出しを使用して、デバイスを目的の電源状態にします。 システムがアクティブなオーディオ ストリームを中断または再開しようとするとき、ドライバーはデバイス コンテキストを適切に保存または復元できる必要があります。

ドライバーを支援するために、PortCls は、このメソッドを呼び出してデバイスをスリープ状態にする前に、アクティブなオーディオ ストリームを一時停止します。 このメソッドを呼び出すと、PortCls はアクティブなオーディオ ストリームの一時停止を解除し、デバイスを起動します。 ミニポートは、IPowerNotify インターフェイスを使用して、追加の通知を選択できます。

ミニポート ドライバーは、PowerChangeState 呼び出しから戻る前に、デバイスの電源状態に要求された変更を実行する必要があります。 ミニポート ドライバーが保存または電源状態の変更前にデバイスの状態を復元する必要がある場合、ミニポート ドライバーは、IPowerNotify インターフェイスをサポートする必要があります。これにより、このような変更の事前警告を受け取ることができます。 正常な PowerChangeState 呼び出しから戻る前に、ミニポート ドライバーは新しい電源状態をキャッシュする必要があります。

ミニポート ドライバーはスリープ状態 (PowerDeviceD0 以外の任意の状態) の 1 つですが、ハードウェアへの書き込みを避ける必要があります。 ミニポート ドライバーは、デバイスの電源が再び起動するまで遅延する必要があるハードウェア アクセスをキャッシュする必要があります。 電源状態がスリープ状態の 1 つから PowerDeviceD0 に変わる場合、ミニポート ドライバーは、デバイスの電源をオンにした後、遅延ハードウェア アクセスを実行する必要があります。 電源状態が PowerDeviceD0 からスリープ状態に変化している場合、ミニポート ドライバーは、デバイスの電源を切る前に、PowerChangeState 呼び出し中に必要なハードウェア アクセスを実行できます。

電源を切っている間、ミニポート ドライバーは、ミニポート ドライバー オブジェクトまたはストリーム オブジェクトを作成するように求められることはありません。 PortCls は常に、ミニポート ドライバーの NewStream メソッドを呼び出す前に、デバイスを PowerDeviceD0 状態にします。

このメソッドのコードは、ページング されたメモリ内に存在する必要があります。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー portcls.h (Portcls.h を含む)

関連項目

IAdapterPowerManagement

IPowerNotify

IRP_MN_SET_POWER