次の方法で共有


PoRegisterForEffectivePowerModeNotifications 関数 (wdm.h)

PoRegisterForEffectivePowerModeNotifications 関数は、有効な電源モード変更通知を受け取るコールバックを登録します。

構文

NTSTATUS PoRegisterForEffectivePowerModeNotifications(
  ULONG                             Version,
  PPO_EFFECTIVE_POWER_MODE_CALLBACK Callback,
  PVOID                             Context,
  PO_EPM_HANDLE                     *RegistrationHandle,
  PDEVICE_OBJECT                    DeviceObject
);

パラメーター

Version

呼び出し元が認識する最大有効電源モード バージョンを提供します。 有効な電源モードが新しいバージョンから取得された場合は、互換性のあるバージョンにマップされ、コールバックに渡されます。

次の値を渡すことができます。

  • EFFECTIVE_POWER_MODE_V1は、Windows 10 Version 1809以降で使用でき、パフォーマンス電源スライダーと省電力状態を追跡します。

  • EFFECTIVE_POWER_MODE_V2は、Windows 10 バージョン 1903 以降で使用でき、パフォーマンス電源スライダー、バッテリー セーバー、ゲーム モード、Windows Mixed Reality の電源状態を追跡します。

Callback

有効な電源モードが変更されたときに呼び出すコールバックへのポインター。 これは、登録時に 1 回呼び出され、現在のモードが提供されます。 複数のコールバックが登録されている場合は、それらのコールバックを同時に呼び出すことができます。

Context

呼び出し元指定の不透明なコンテキスト。

RegistrationHandle

これは、登録へのハンドルを受け取る変数へのポインターです。 このハンドルを使用して、コールバック関数の登録を解除できます。

DeviceObject

これは省略可能なパラメーターであり、指定した場合は、指定されたデバイス コンテキストを使用して (ドライバーからなど) 登録済みのコールバックを提供します。

戻り値

呼び出 しが 成功した場合S_OK (ゼロ) を返し、呼び出しが失敗した場合は 0 以外の値を返します。

注釈

登録直後に、電源設定の現在の値を使用してコールバックが呼び出されます。 電源モードの変更中に登録が発生した場合は、複数のコールバックを受け取る可能性があります。 最後のコールバックは最新の更新です。

要件

要件
サポートされている最小のクライアント Windows 11バージョン 24H2
Header wdm.h (Wdm.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL

こちらもご覧ください

PO_EFFECTIVE_POWER_MODE

PO_EFFECTIVE_POWER_MODE_CALLBACK

PoUnregisterFromEffectivePowerModeNotifications