デバイス電源管理 (DPM) の通知
PEP の AcceptDeviceNotification コールバック ルーチンが受け取る各デバイス電源管理 (DPM) 通知には、通知の種類を示す Notification パラメーターと、指定した通知の種類の情報を含むデータ構造体を指す Data パラメーターが付属しています。
この呼び出しにおいて、Notification パラメーターは通知の種類を示す PEP_DPM_XXX 定数値に設定されます。 Data パラメーターは、この通知の種類に関連付けられている PEP_XXX 構造体型を指します。
通知 ID
次の DPM 通知 ID は、AcceptDeviceNotification 呼び戻しルーチンによって使用されます。
PEP_DPM_PREPARE_DEVICE
Notification (PEP_DPM_PREPARE_DEVICE)
PEP_DPM_PREPARE_DEVICE 値。
Data (PEP_DPM_PREPARE_DEVICE)
PEP_PREPARE_DEVICE 構造体へのポインター。 指定されたデバイスを所有する PEP に対し、デバイスが D0 (動作中) デバイス電源状態で動作するよう設定を指示します。
Windows 電源管理フレームワーク (PoFx) は、デバイスのドライバー スタックがオペレーティング システムによって初めて開始される前に、PEP にこの通知を送信します。 この通知により、PEP は、デバイスの動作に必要な外部電源またはクロック リソースをオンにすることができます。
PEP_DPM_PREPARE_DEVICE 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_PREPARE_DEVICE であり、Data パラメーターは PEP_PREPARE_DEVICE 構造体を指します。 入力時に、この構造体の DeviceId メンバーは、デバイスを一意に識別するデバイス識別文字列です。 戻る際、PEP がデバイスの所有権を要求する場合は、この構造体の DeviceAccepted メンバーを TRUE に設定し、デバイスを所有しない場合は、FALSE に設定します。
デバイスの電源管理を所有する PEP は、デバイスの外部にあり、デバイスを操作するために必要な電源リソースとクロック リソースを管理する役割を担います。 この PEP は、PEP_DPM_PREPARE_DEVICE 通知に応答してデバイスへのクロック信号と電力を有効にし、PEP_DPM_ABANDON_DEVICE 通知に応答して、デバイスからクロック信号と電力を削除します。
次の表では、このオペレーティング システムが PEP に対して PEP_DPM_PREPARE_DEVICE 通知を送信する時点で有効な前提条件と、PEP が所有するデバイスでこの通知を処理した後に有効になる実行後の状態を示します。
前提条件 | 実行後の状態 |
---|---|
デバイスは任意の電源状態にすることができます。 | PEP がデバイスの所有権を要求する場合、デバイスとそのすべてのコンポーネントがオンになり、デバイスへのクロックがゲート解除されている必要があります。 電源マネージャーがこれらのデバイスの PEP 所有者を見つけようとする場合、PEP に複数のデバイスの PEP_DPM_PREPARE_DEVICE 通知が届くことがあります。 PEP は PEP_PREPARE_DEVICE 構造体の DeviceAccepted メンバーを、PEP が所有しないすべてのデバイスに対して FALSE に設定する必要があります。 |
コア デバイスに対して PEP_DPM_PREPARE_DEVICE 通知は送信されません。
PEP_DPM_PREPARE_DEVICE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_ABANDON_DEVICE
Notification (PEP_DPM_ABANDON_DEVICE)
PEP_DPM_ABANDON_DEVICE 値。
Data (PEP_DPM_ABANDON_DEVICE)
PEP_ABANDON_DEVICE 構造体へのポインター。 指定したデバイスがオペレーティング システムで使用されなくなったことを PEP に通知します。
Windows 電源管理フレームワーク (PoFx) は、オペレーティング システムがデバイスのドライバー スタックを削除した後、PEP にこの通知を送信します。 この通知により、PEP は、デバイスの操作に使用される外部電源またはクロック リソースをオフにし、将来の意思決定プロセスからこのデバイスを削除できます。 デバイスを後で再度起動する必要がある場合、PEP はまず PEP_DPM_PREPARE_DEVICE 通知を受け取ります。
PEP_DPM_ABANDON_DEVICE 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_ABANDON_DEVICE であり、Data パラメーターは PEP_ABANDON_DEVICE 構造体を指します。 入力時に、この構造体の DeviceId メンバーは、デバイスを一意に識別するデバイス識別文字列です。 戻る際、PEP がデバイスの所有権を要求する場合は、この構造体の DeviceAccepted メンバーを TRUE に設定し、デバイスを所有しない場合は、FALSE に設定します。
デバイスの電源管理を所有する PEP は、デバイスの外部にあり、デバイスを操作するために必要な電源リソースとクロック リソースを管理する役割を担います。
次の表では、このオペレーティング システムが PEP に対して PEP_DPM_ABANDON_DEVICE 通知を送信する時点で有効な前提条件と、PEP が所有するデバイスでこの通知を処理した後に有効になる実行後の状態を示します。
前提条件 | 実行後の状態 |
---|---|
PEP は、デバイスの PEP_DPM_PREPARE_DEVICE 通知を受け取り、デバイスの所有権を受け入れます。 PEP がデバイスの PEP_DPM_REGISTER_DEVICE 通知を受信し、デバイスの登録を受け入れた場合は、その後、デバイスの PEP_DPM_UNREGISTER_DEVICE 通知を受け取ります。 |
PEP_DPM_PREPARE_DEVICE 通知に対応して割り当てられたリソースはすべて解放する必要があります。 PEP_DPM_PREPARE_DEVICE では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。 |
PEP_DPM_REGISTER_DEVICE
Notification (PEP_DPM_REGISTER_DEVICE)
PEP_DPM_REGISTER_DEVICE 値。
Data (PEP_DPM_REGISTER_DEVICE)
PEP_REGISTER_DEVICE_V2 構造体へのポインター。
指定したデバイスのドライバー スタックが Windows 電源管理フレームワーク (PoFx) に登録されていることを PEP に通知します。
PoFx は、デバイスのドライバー スタックが PoFxRegisterDevice ルーチンを呼び出してデバイスを登録するときに、この通知を送信します。 この通知により、PEP は後で参照できるように、デバイスの登録情報を PEP の内部ストレージにコピーできます。
PEP_DPM_REGISTER_DEVICE 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_REGISTER_DEVICE であり、Data パラメーターは、PEP_REGISTER_DEVICE_V2 構造体を指します。この構造体には、デバイスのカーネル ハンドルやその他の登録情報が格納されています。 入力時に、この構造体の DeviceId メンバーは、デバイスを一意に識別するデバイス識別文字列です。 戻る際、PEP がデバイスの所有権を要求する場合は、この構造体の DeviceAccepted メンバーを TRUE に設定し、デバイスを所有しない場合は、FALSE に設定します。 この構造体の他のメンバーについては、PEP_REGISTER_DEVICE_V2 を参照してください。
次の表では、このオペレーティング システムが PEP に対して PEP_DPM_REGISTER_DEVICE 通知を送信する時点で有効な前提条件と、PEP が所有するデバイスでこの通知を処理した後に有効になる実行後の状態を示します。
前提条件 | 実行後の状態 |
---|---|
PEP は、所有するデバイスの PEP_DPM_PREPARE_DEVICE 通知を受け取ります。 | PEP は、このデバイスに関連付けられている他のデバイス電源管理 (DPM) 通知を受信する準備ができています。 |
PEP_DPM_REGISTER_DEVICE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_UNREGISTER_DEVICE
Notification (PEP_DPM_UNREGISTER_DEVICE)
PEP_DPM_UNREGISTER_DEVICE 値。
Data (PEP_DPM_UNREGISTER_DEVICE)
PEP_UNREGISTER_DEVICE 構造体へのポインター。
指定したデバイスを所有する PEP に対し、デバイスのドライバー スタックが Windows 電源管理フレームワーク (PoFx) から登録を取り消したことを通知します。
PoFx はこの通知を送信することで、前回の PEP_DPM_REGISTER_DEVICE 通知時に、PEP によってデバイスに保存された登録情報がすでに無効であることを PEP に通知します。 これに対して、PEP は、このデバイスの電源管理に使用される内部状態をクリーンアップできます。
PEP_DPM_UNREGISTER_DEVICE 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_UNREGISTER_DEVICE であり、Data パラメーターは PEP_UNREGISTER_DEVICE 構造体を指します。 この構造体には、デバイスへの前回の PEP_DPM_REGISTER_DEVICE 通知に応答して PEP が作成したハンドルが入っています。
次の表では、このオペレーティング システムが PEP に対して PEP_DPM_UNREGISTER_DEVICE 通知を送信する時点で有効な前提条件と、PEP が所有するデバイスでこの通知を処理した後に有効になる実行後の状態を示します。
前提条件 | 実行後の状態 |
---|---|
PEP がデバイスの PEP_DPM_REGISTER_DEVICE 通知を受信し、デバイスの登録を受け入れた場合。 PEP は、このデバイスに関連付けられている任意のデバイス電源管理 (DPM) 通知を受け取ることができます。 PEP は、このデバイスに関連付けられている "作業" を報告できます。 |
PEP は、PEP_DPM_ABANDON_DEVICE を除き、このデバイスに関連付けられているデバイス電源管理 (DPM) 通知を受信できなくなりました。 PEP は、このデバイスに関連付けられている "作業" を報告できません。 |
PEP_DPM_UNREGISTER_DEVICE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_DEVICE_POWER_STATE
Notification (PEP_DPM_DEVICE_POWER_STATE)
PEP_DPM_DEVICE_POWER_STATE 値。
Data (PEP_DPM_DEVICE_POWER_STATE)
PEP_DEVICE_POWER_STATE 構造体へのポインター。
デバイスのドライバー スタックが新しい Dx 電源状態への変更を要求するか、以前に要求した Dx 電源状態への移行が完了するたびに PEP に送信されます。
PEP が RequestWorker ルーチンを呼び出して作業項目を要求した後、PoFx は PEP に PEP_DPM_DEVICE_POWER_STATE 通知を送信して応答します。 ただしこの通知は、作業項目の処理に必要なリソース (ワーカースレッド) が使用可能になるまで送信されません。 このように、PoFx は、リソースがない理由でに通知中に PEP が PoFx に渡す作業要求が失敗することがないよう保証します。
PEP_DPM_DEVICE_POWER_STATE 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_DEVICE_POWER_STATE であり、Data パラメーターは PEP_DEVICE_POWER_STATE 構造体を指します。 入力時に、PEP は、この構造体の内容が初期化されていないと想定する必要があります。 PEP はこの通知を処理するために、要求されている作業を記述する PEP によって割り当てられた PEP_WORK_INFORMATION 構造を指す WorkInformation メンバーを設定する必要があります。 さらに、PEP は、PEP_WORK 構造体の NeedWork メンバーを TRUE に設定して、PEP が PEP_DEVICE_POWER_STATE 通知を処理していること、および WorkInformation メンバーが有効な PEP_WORK_INFORMATION 構造体を指していることを確認する必要があります。 PEP が通知の処理に失敗した場合、または PEP_WORK_INFORMATION 構造を割り当てることができない場合、PEP は WorkInformation メンバーを NULL に設定し、NeedWork メンバーを FALSE に設定する必要があります。
PEP_DPM_DEVICE_POWER_STATE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_COMPONENT_ACTIVE
Notification (PEP_DPM_COMPONENT_ACTIVE)
PEP_DPM_COMPONENT_ACTIVE 値。
Data (PEP_DPM_COMPONENT_ACTIVE)
構造体へのポインター。コンポーネントを識別し、このコンポーネントがアクティブ状態に移行しているのか、アイドル状態に移行しているのかを示します。
コンポーネントがアイドル状態からアクティブ状態に移行する必要があること、またはその逆を PEP に通知します。
Windows 電源管理フレームワーク (PoFx) は、アクティブな状態またはアイドル状態への移行が保留中の場合に、この通知を送信します。
PEP_DPM_COMPONENT_ACTIVE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_COMPONENT_ACTIVE であり、Data パラメーターは PEP_COMPONENT_ACTIVE 構造体を指します。
アクセス可能なコンポーネントはアクティブ状態にあります。 アクセスできないコンポーネントは、アイドル状態です。 アクティブな状態にあるコンポーネントは、常に F0 コンポーネントの電源状態になります。 コンポーネントは、アイドル状態になるまで F0 を終了できません。 アイドル状態のコンポーネントは、F0 または低電力 Fx 状態である可能性があります。 コンポーネントのアクティブ/アイドル状態は、ドライバーがコンポーネントにアクセスできるかどうかを判断するための唯一の信頼できる手段です。 F0 でかつアイドル状態のコンポーネントが、低電力の Fx 状態に切り替わろうとしている可能性があります。
アクティブ コンポーネントがアイドル状態になる準備ができたら、すぐに遷移が発生します。 PEP_DPM_COMPONENT_ACTIVE 通知の処理中に、PEP は、たとえば、コンポーネントの F0 から低電力 Fx 状態への移行を要求する場合があります。
PEP_DPM_COMPONENT_ACTIVE 通知がアイドル状態からアクティブ状態への移行を要求したときにコンポーネントが低電力 Fx 状態の場合、コンポーネントがアクティブな状態に入る前に、PEP はまずコンポーネントを F0 に切り替える必要があります。 PEP は、PEP_DPM_COMPONENT_ACTIVE 通知の AcceptDeviceNotification コールバックから戻った後、アクティブな条件への遷移のためのコンポーネントの準備を非同期的に完了する必要がある場合があります。 アクティブな条件で動作するようにコンポーネントが完全に構成された後、PEP は RequestWorker ルーチンを呼び出し、PEP_WORK_INFORMATION 構造体で WorkType = PepWorkActiveComplete を設定することで、結果の PEP_DPM_WORK 通知を処理する必要があります。
PEP が F0 内にあり、アクティブな状態で動作するように既に完全に構成されているコンポーネントの PEP_DPM_COMPONENT_ACTIVE 通知を受け取った場合、PEP はこの通知の処理を同期的に完了できる可能性があります。 通知の "高速パス" 処理がサポートされている場合、この通知の PEP_COMPONENT_ACTIVE 構造体の WorkInformation メンバーには PEP_WORK_INFORMATION 構造体へのポインターが含まれており、PEP はこの構造体の WorkType メンバーを PepWorkActiveComplete に設定して遷移を完了できます。 ただし、WorkInformation = NULL の場合、"高速パス" は使用できません。前の段落で説明したように、PEP は RequestWorker を呼び出して非同期的に移行を完了する必要があります。
アクティブおよびアイドル状態の詳細については、「コンポーネント レベルの電源管理」を参照してください。
PEP_DPM_COMPONENT_ACTIVE 通知では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_WORK
Notification (PEP_DPM_WORK)
PEP_DPM_WORK 値。
Data (PEP_DPM_WORK)
PEP_WORK 構造体へのポインター。
PEP が RequestWorker ルーチンを呼び出して Windows 電力管理フレームワーク (PoFx) から作業項目を要求するたびに PEP に送信されます。
PEP が RequestWorker ルーチンを呼び出して作業項目を要求すると、PoFx は PEP に PEP_DPM_WORK 通知を送信して応答します。 ただしこの通知は、作業項目の処理に必要なリソース (ワーカースレッド) が使用可能になるまで送信されません。 このように、PoFx は、リソースがない理由でに通知中に PEP が PoFx に渡す作業要求が失敗することがないよう保証します。
PEP_DPM_WORK 通知を送信するために、オペレーティング システムは PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_WORK であり、Data パラメーターは PEP_WORK 構造体を指します。 入力時に、PEP は、この構造体の内容が初期化されていないと想定する必要があります。 PEP はこの通知を処理するために、要求されている作業を記述する PEP によって割り当てられた PEP_WORK_INFORMATION 構造を指す WorkInformation メンバーを設定する必要があります。 さらに、PEP は、PEP_WORK 構造体の NeedWork メンバーを TRUE に設定して、PEP が PEP_DPM_WORK 通知を処理していること、および WorkInformation メンバーが有効な PEP_WORK_INFORMATION 構造体を指していることを確認する必要があります。 PEP が通知の処理に失敗した場合、または PEP_WORK_INFORMATION 構造を割り当てることができない場合、PEP は WorkInformation メンバーを NULL に設定し、NeedWork メンバーを FALSE に設定する必要があります。
PEP_DPM_WORK 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_POWER_CONTROL_REQUEST
Notification (PEP_DPM_POWER_CONTROL_REQUEST)
PEP_DPM_POWER_CONTROL_REQUEST 値。
Data (PEP_DPM_POWER_CONTROL_REQUEST)
PEP_POWER_CONTROL_REQUEST 構造体へのポインター。
ドライバーが制御コードを PEP に直接送信するために PoFxPowerControl API を呼び出したことを PEP に通知します。
ドライバーが PoFxPowerControl API を呼び出して制御コードを PEP に直接送信すると、Windows 電源管理フレームワーク (PoFx) によってこの通知が PEP に送信されます。 この場合の通知データ ポインターは、PEP_POWER_CONTROL_REQUEST 構造体を指します
電源制御要求とそのセマンティクスは、PEP ライターとデバイス クラス所有者の間で定義されます。 通常、このようなインターフェイスは、一般化された電源管理フレームワークでキャプチャされないデバイス クラス固有の通信用です。 たとえば、UART コントローラーは、一部のプラットフォーム クロック レール/分周器を変更するためにボー レート情報を PEP に通信でき、そのような通信では電力制御要求を利用する可能性があります。
![注] PEP は、PEP_DPM_DEVICE_STARTED 通知または PEP_DPM_POWER_CONTROL_REQUEST 通知を受信した後にのみ、デバイスに制御コードを送信するように要求できます。
PEP_DPM_POWER_CONTROL_REQUEST 通知では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_POWER_CONTROL_COMPLETE
Notification (PEP_DPM_POWER_CONTROL_COMPLETE)
PEP_DPM_POWER_CONTROL_COMPLETE 値。
Data (PEP_DPM_POWER_CONTROL_COMPLETE)
PEP_POWER_CONTROL_COMPLETE 構造体へのポインター。
ドライバーが PEP によって以前に発行された電源制御要求を完了したことを PEP に通知します。
Windows 電源管理フレームワーク (PoFx) は、ドライバーが PEP によって以前に発行された電源制御要求を完了すると、PEP にこの通知を送信します。
![注] PEP は、電源制御要求を発行しない場合、この通知を無視できます。
PEP_DPM_POWER_CONTROL_COMPLETE 通知では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_SYSTEM_LATENCY_UPDATE
Notification (PEP_DPM_SYSTEM_LATENCY_UPDATE)
PEP_DPM_SYSTEM_LATENCY_UPDATE 値。
Data (PEP_DPM_SYSTEM_LATENCY_UPDATE)
PEP_SYSTEM_LATENCY 構造体へのポインター。
OS がシステムの全体的な待機時間の許容範囲を更新したことを PEP に通知します。
Windows 電源管理フレームワーク (PoFx) は、OS がシステムの全体的な待機時間の許容範囲を更新すると、この通知を送信します。
以前のバージョンの PoFx では、この通知は、プロセッサとプラットフォームのアイドル状態の選択に PEP によって使用されていました。 最新の PEP インターフェイスでは、選択プロセスは OS によって完全に処理されるため、この通知は役に立たなくなります。 これは完全を期すためにここに含まれており、PEP はこれをする必要があります。
PEP_DPM_SYSTEM_LATENCY_UPDATE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この通知では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_DEVICE_STARTED
Notification (PEP_DPM_DEVICE_STARTED)
PEP_DPM_DEVICE_STARTED 値。
Data (PEP_DPM_DEVICE_STARTED)
PEP_DEVICE_STARTED 構造体へのポインター。
電源制御トランザクションを受信できるように、デバイスが起動したことを PEP に通知します。
デバイス スタックは、2 段階のプロセスでランタイム電源管理のために OS に登録されます。 ドライバーは最初に PoFxRegisterDevice を呼び出して、コンポーネントの数、アイドル状態、および対応する属性に関する情報を提供します。 この呼び出しに応答して、PEP は PEP_DPM_REGISTER_DEVICE 通知を受け取ります。
登録が成功すると、ドライバーはコンポーネントを初期化できます (アクティブな設定、待機時間の要件の更新、予想されるアイドル状態の常駐の更新など)。 ドライバーが初期化タスクを完了すると、PoFxStartDevicePowerManagement を呼び出して電源マネージャーに通知します。 応答として、PEP は PEP_DPM_DEVICE_STARTED 通知を受け取ります。 この時点で、デバイスはランタイム電源管理に対して完全に有効になっていると見なされます。
その結果、PEP は、最初に PEP_DPM_DEVICE_STARTED 通知または PEP_DPM_POWER_CONTROL_REQUEST 通知を受け取っていない限り、ドライバーに電源制御要求を発行できません。
Note
PEP は、電源制御要求を発行しない場合、この通知を無視できます。
PEP_DPM_DEVICE_STARTED では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE
Notification (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE 値。
Data (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)
PEP_NOTIFY_COMPONENT_IDLE_STATE 構造体へのポインター。
OS が特定のコンポーネントのアイドル状態への遷移を発行すると、PEP に送信されます。
Windows 電源管理フレームワーク (PoFx) は、OS が特定のコンポーネントのアイドル状態遷移を発行すると、この通知を送信します。
重要
PEP はこの通知を処理する必要があります。
アイドル状態への遷移ごとに、ドライバーが通知される前と後に PEP に通知されます。 PEP は、PEP_NOTIFY_COMPONENT_IDLE_STATE 構造体の DriverNotified メンバーを調べることで、事前通知と事後通知を区別します。 通知後の DriverNotified メンバーは TRUE になります。
事前通知は、F0 に遷移するときに一般的に使用されます。 この場合、PEP では、ドライバーが F0 通知を処理したときにハードウェアを使用できるように、クロックまたは電源リソースを再度有効にする必要があります。 したがって、通知後は、F0 からより深いアイドル状態に移行するときに一般的に使用されます。 ドライバーがアイドル状態通知を処理した後、PEP はクロックと電源リソースを安全にオフにすることができます。
特定のコンポーネントのアイドル状態遷移を処理するときに、操作にかなりの時間がかかるか、IRQL が高すぎて同期的に遷移を完了できない場合は、非同期処理が必要になることがあります。 その結果、PEP は、完了したメンバーをそれぞれ TRUE または FALSE に設定することで、同期的または非同期的にこの通知を完了できます。
通知を非同期に完了する場合、PEP はワーカーを要求し (RequestWorker を参照)、PepWorkCompleteIdleState の作業型を使用して、提供された作業情報構造を結果の PEP_DPM_WORK 通知に入力することで、完了時に OS に通知します。
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 このルーチンは IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_REGISTER_DEBUGGER
Notification (PEP_DPM_REGISTER_DEBUGGER)
PEP_DPM_REGISTER_DEBUGGER 値。
Data (PEP_DPM_REGISTER_DEBUGGER)
PEP_REGISTER_DEBUGGER 構造体へのポインター。
登録済みデバイスがデバッグ ポートとして使用される可能性があることを PEP に通知します。
Windows 電源管理フレームワーク (PoFx) は、登録されているデバイスがデバッグ ポートとして使用される可能性があることを PEP に通知するために、この通知を送信します。
PEP_DPM_REGISTER_DEBUGGER 通知では、AcceptDeviceNotification ルーチンが IRQL <= DISPATCH_LEVEL で呼び出されます。
PEP_DPM_LOW_POWER_EPOCH
Notification (PEP_DPM_LOW_POWER_EPOCH)
PEP_DPM_LOW_POWER_EPOCH 値。
Data (PEP_DPM_LOW_POWER_EPOCH)
PEP_LOW_POWER_EPOCH 構造体へのポインター。
この通知は非推奨です。
PEP_DPM_REGISTER_CRASHDUMP_DEVICE
Notification (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)
PEP_DPM_REGISTER_CRASHDUMP_DEVICE 値。
Data (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)
PEP_REGISTER_CRASHDUMP_DEVICE 構造体へのポインター。
Windows 電源管理フレームワーク (PoFx) は、デバイスがクラッシュ ダンプ ハンドラーとして登録されるときに、この通知を送信します。
システムで致命的なエラーが発生したときにメモリ ダンプ (クラッシュダンプ) を生成する機能は、クラッシュの原因を特定する上で非常に重要です。 Windows は既定で、システムがバグ チェックに遭遇するとクラッシュ ダンプを生成します。 このコンテキストでは、割り込みが無効でシステム IRQL が HIGH_LEVEL であるため、システムは非常に制約の多い動作環境下にあります。
クラッシュダンプのディスクへの書き込みに関係するデバイス (ストレージ コントローラー、PCI コントローラーなど) はクラッシュ時に電源をオフにする可能性があるため、OS は PEP を呼び出してデバイスの電源をオンにする必要があります。 そのため、OS はクラッシュダンプ スタック上のすべてのデバイスに対して PEP からコールバック (PowerOnDumpDeviceCallback) を要求し、ダンプ ファイルの生成時にコールバックを呼び出します。
クラッシュ時の制約付き環境を考えると、PEP によって提供されるコールバックは、ページングされたコードへのアクセスや、イベントのブロック、同じ操作を行う可能性のあるコードの呼び出しを避ける必要があります。 さらに、必須のリソースを起動するプロセスは、割り込みを使用できません。 その結果、PEP は、さまざまなリソースが有効になるまで待機する必要がある場合、ポーリングに戻さなければならないことがあります。 PEP がこれらの制約の下でデバイスの電源をオンにできない場合は、通知を処理しないか、コールバック ルーチンを供給しないでください。
PEP_DPM_REGISTER_CRASHDUMP_DEVICE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この通知では、AcceptDeviceNotification ルーチンが IRQL <= HIGH_LEVEL で呼び出されます。
PEP_DPM_DEVICE_IDLE_CONSTRAINTS
Notification (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 値。
Data (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)
PEP_DEVICE_PLATFORM_CONSTRAINTS 構造体へのポインター。 PEP に送信され、デバイスの D 状態とプラットフォームのアイドル状態の間の依存関係を照会します。
Windows 電源管理フレームワーク (PoFx) は、この通知を PEP に送信して、デバイスの D 状態とプラットフォームのアイドル状態の間の依存関係を照会します。 PEP は、この通知を使用して、デバイスが存在を維持できる最も軽い D 状態を返し、各プラットフォームをアイドル状態に移行させます。 OS では、関連付けられているプラットフォームのアイドル状態に移行する前に、デバイスが最小 D 状態であることが保証されます。 プラットフォームのアイドル状態がこのデバイスの D 状態に依存しない場合、PEP は PowerDeviceD0 の最小 D 状態を指定する必要があります。 このデバイスが特定の D 状態であることに依存しているプラットフォーム アイドル状態が存在しない場合、この通知は無視できます。
この通知は、PEP が PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知を受信した後、各デバイスに送信されます。
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_DEVICE_IDLE_CONSTRAINTS であり、Data パラメーターは PEP_DEVICE_PLATFORM_CONSTRAINTS 構造体を指します。
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 通知では、AcceptDeviceNotification ルーチンが常に IRQL = DISPATCH_LEVEL で呼び出されます。
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS
Notification (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS 値。
Data (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)
PEP_COMPONENT_PLATFORM_CONSTRAINTS 構造体へのポインター。
コンポーネントの F 状態とプラットフォームのアイドル状態の間の依存関係を照会するために PEP に送信されます。
Windows 電源管理フレームワーク (PoFx) は、この通知を PEP に送信して、コンポーネントの F 状態とプラットフォームのアイドル状態の間の依存関係を照会します。 PEP は、この通知を使用して、コンポーネントが存在を維持できる最も軽い F 状態を返し、各プラットフォームのアイドル状態を入力します。 OS では、関連付けられているプラットフォームのアイドル状態に移行する前に、コンポーネントが最小 F 状態であることが保証されます。 プラットフォームのアイドル状態がこのコンポーネントに依存しない場合、PEP は最小 F 状態を 0 に指定する必要があります。 このコンポーネントが特定の F 状態であることに依存しているプラットフォーム アイドル状態が存在しない場合、この通知は無視できます。
D0 より深いデバイスのアイドル制約は、デバイス上のコンポーネントのアイドル状態よりも制約が大きくなります。 特定のプラットフォーム アイドル状態インデックスについて、デバイスがデバイスのアイドル制約を指定した場合、デバイスに関連付けられたすべてのコンポーネントの対応するコンポーネント アイドル制約は無視されます。
この通知は、PEP が PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知を受信した後、各デバイスの各コンポーネントに送信されます。
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 AcceptDeviceNotification ルーチンは常に IRQL = DISPATCH_LEVEL で呼び出されます。
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES
Notification (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 値。
Data (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)
PEP_QUERY_COMPONENT_PERF_CAPABILITIES 構造体へのポインター。
コンポーネントに対して定義されているパフォーマンス状態 (P 状態) セットの数を照会していることを PEP に通知します。
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES であり、Data パラメーターは PEP_QUERY_COMPONENT_PERF_CAPABILITIES 構造体を指します。
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_QUERY_COMPONENT_PERF_SET
Notification (PEP_DPM_QUERY_COMPONENT_PERF_SET)
PEP_DPM_QUERY_COMPONENT_PERF_SET 値。
Data (PEP_DPM_QUERY_COMPONENT_PERF_SET)
PEP_QUERY_COMPONENT_PERF_SET 構造体へのポインター。
コンポーネントのパフォーマンス状態値のセット (P 状態セット) に関する情報を照会していることを PEP に通知します。
PEP_DPM_QUERY_COMPONENT_PERF_SET 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_QUERY_COMPONENT_PERF_SET であり、Data パラメーターは PEP_QUERY_COMPONENT_PERF_SET 構造体を指します。
PEP_DPM_QUERY_COMPONENT_PERF_SET 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME
Notification (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 値。
Data (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)
PEP_QUERY_COMPONENT_PERF_SET_NAME 構造体へのポインター。
コンポーネントのパフォーマンス状態値のセット (P 状態セット) に関する情報を照会していることを PEP に通知します。
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が EP_DPM_QUERY_COMPONENT_PERF_SET_NAME, であり、Data パラメーターは PEP_QUERY_COMPONENT_PERF_SET_NAME 構造体を指します。
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_QUERY_COMPONENT_PERF_STATES
Notification (PEP_DPM_QUERY_COMPONENT_PERF_STATES)
PEP_DPM_QUERY_COMPONENT_PERF_STATES 値。
Data (PEP_DPM_QUERY_COMPONENT_PERF_STATES)
PEP_QUERY_COMPONENT_PERF_STATES 構造体へのポインター。
指定された P 状態セットの個別のパフォーマンス状態 (P 状態) 値の一覧を照会していることを PEP に通知します。
PEP_DPM_QUERY_COMPONENT_PERF_STATES 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_QUERY_COMPONENT_PERF_STATES であり、Data パラメーターは PEP_QUERY_COMPONENT_PERF_STATES 構造体を指します。
PEP_DPM_QUERY_COMPONENT_PERF_STATES 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_REGISTER_COMPONENT_PERF_STATES
Notification (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 値。
Data (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)
PEP_REGISTER_COMPONENT_PERF_STATES 構造体へのポインター。
指定したコンポーネントのパフォーマンス状態 (P 状態) について PEP に通知します。
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_REGISTER_COMPONENT_PERF_STATES であり、Data パラメーターは PEP_REGISTER_COMPONENT_PERF_STATES 構造体を指します。
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_REQUEST_COMPONENT_PERF_STATE
Notification (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 値。
Data (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)
PEP_REQUEST_COMPONENT_PERF_STATE 構造体へのポインター。
1 つ以上のパフォーマンス状態 (P 状態) の変更が Windows 電源管理フレームワーク (PoFx) によって要求されることを PEP に通知します。
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_REQUEST_COMPONENT_PERF_STATE であり、Data パラメーターは PEP_REQUEST_COMPONENT_PERF_STATE 構造体を指します。
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE
Notification (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 値。
Data (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)
PEP_QUERY_CURRENT_COMPONENT_PERF_STATE 構造体へのポインター。
指定した P 状態セット内の現在の P 状態に関する情報を照会していることを PEP に通知します。
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この呼び出しでは、Notification パラメーター値が PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE であり、Data パラメーターは PEP_QUERY_CURRENT_COMPONENT_PERF_STATE 構造体を指します。
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 通知では、AcceptDeviceNotification ルーチンが常に IRQL = PASSIVE_LEVEL で呼び出されます。
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS
Notification (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS 値。
Data (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)
PEP_DEBUGGER_TRANSITION_REQUIREMENTS 構造体へのポインター。
デバッガーの電源をオフにする必要がある調整された状態またはプラットフォーム状態のセットを照会するために PEP に送信されます。
Windows 電源管理フレームワーク (PoFx) は、この通知を PEP に送信して、デバッガーの電源をオフにする必要がある調整済み状態またはプラットフォーム状態のセットを照会します。 この通知が受け入れられた場合、OS は PEP のすべてのデバッガー電源切り替えを実行します。PEP はデバッガーの電源管理に、TransitionCriticalResource を使用することはできません。
この通知は、PEP が PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE 通知または PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES 通知を受け入れた後、各デバッガー デバイスに送信されます。
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この通知では、AcceptDeviceNotification ルーチンが常に IRQL = DISPATCH_LEVEL で呼び出されます。
PEP_DPM_QUERY_SOC_SUBSYSTEM
Notification (PEP_DPM_QUERY_SOC_SUBSYSTEM)
PEP_DPM_QUERY_SOC_SUBSYSTEM 値。
Data (PEP_DPM_QUERY_SOC_SUBSYSTEM)
PEP_QUERY_SOC_SUBSYSTEM 構造体へのポインター。
特定のシステム オン チップ (SoC) サブシステムに関する基本情報を収集するために PEP に送信されます。
Windows 電源管理フレームワーク (PoFx) は、プラットフォームのアイドル状態が初期化された後、特定の SoC サブシステムに関する基本情報を収集するために、PEP にこの通知を送信します。 SoC サブシステム アカウンティングを実装しない、または指定したプラットフォームのアイドル状態に対して実装しない PEP は、FALSE を返します。 これにより、OS は、このプラットフォームのアイドル状態の PEP への診断通知の送信を停止します。
システムの SubsystemCount とサブシステムの MetadataCount は、PEP/BSP 更新プログラムで変更できます。 SubsystemIndex は、OS が起動するたびに変更できます。
重要
PEP はこの通知を無視できません。 PEP は、この PlatformIdleStateIndex の PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 通知に 0 以外の SubsystemCount で応答したため、この通知を受信しています。
PEP_DPM_QUERY_SOC_SUBSYSTEM 通知を送信するために、PoFx は IRQL < DISPATCH_LEVEL で PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME
Notification (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 値。
Data (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)
PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 構造体へのポインター。
OS の認識しない間に、特定のシステム オン チップ (SoC) サブシステムが原因で、特定のプラットフォームがアイドル状態に遷移できなかった時間の集計を OS が収集する場合に PEP に送信されます。
通常、OS は拡張コネクト スタンバイ セッションの終了時にこの通知を呼び出します。このセッションでは、OS が指定されたプラットフォームのアイドル状態に移行を試みました。 PEP_QUERY_SOC_SUBSYSTEM_COUNT.SubsystemCount 値は、サブコンポーネントの初期化中に PEP によって先に入力され、一度に PEP に送信される PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 通知数を指定します。 PEP は、特定のサブシステムに対して複数の PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 通知を受信できます。 これらの通知は、PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 通知によってインターリーブされる場合とされない場合があります。
重要
PEP はこの通知を無視できません。 PEP は、この PlatformIdleStateIndex の PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 通知に 0 以外の SubsystemCount で応答したため、この通知を受信しています。
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 通知を送信するために、PoFx は IRQL < DISPATCH_LEVEL で PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT
Notification (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 値。
Data (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)
PEP_QUERY_SOC_SUBSYSTEM_COUNT 構造体へのポインター。
プラットフォームのアイドル状態が初期化された後に PEP に送信され、特定のプラットフォームをアイドル状態に移行させたシステム オン チップ (SoC) サブシステムを PEP がサポートしているかどうかを OS に通知します。
これは、PEP に送信される最初の SoC サブシステム診断通知です。 SoC サブシステムアカウンティングを実装しない、または指定されたプラットフォームアイドル状態に対して実装しない PEP は FALSE を返します。この場合、OS はこのプラットフォームのアイドル状態の間、これ以上 SoC サブシステム診断通知を PEP に送信しません。
Note
指定したプラットフォームのアイドル状態に対して SoC 診断通知が実装されていない場合、PEP はこの通知を無視できます。
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 通知を送信するために、PoFx は IRQL < DISPATCH_LEVEL で PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA
Notification (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 値。
Data (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)
PEP_QUERY_SOC_SUBSYSTEM_METADATA 構造体へのポインター。
ブロック時間が照会されたサブシステムに関する省略可能なメタデータを収集するために PEP に送信されます。
この通知は通常、PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 通知の直後に PEP に送信されます。 1 つの PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 通知は、サブシステムを記述するすべてのキーと値のメタデータのペアを収集します。
重要
PEP はこの通知を無視できません。 PEP は、この PlatformIdleStateIndex の PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 通知に 0 以外の SubsystemCount で応答したため、この通知を受信しています。
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 通知を送信するために、PoFx は PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。 この通知では、AcceptDeviceNotification ルーチンが IRQL < DISPATCH_LEVEL で呼び出されます。
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING
Notification (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 値。
Data (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)
PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING 構造体へのポインター。 始めてください。
すべてのサブシステムのブロック時間とメタデータのアカウンティングをクリアするほか、必要な追加初期化を実行し、アカウンティングを再起動するために PEP に送信されます。
Windows 電源管理フレームワーク (PoFx) は、すべてのサブシステムが OS で初期化された後、いつでも PEP にこの通知を送信します。 通常、この通知は、システム オン チップ (SoC) が原因で、指定されたプラットフォームがアイドル状態に移行できない場合に、OS がその状況に関する新たな分析期間を開始したときに呼び出されます (コネクト スタンバイ移行時の DRIPS が対象)。 OS は、PEP が 1 つ以上の SoC サブシステムを初期化したプラットフォームのアイドル状態に対してのみ、この通知を送信します。
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 通知を送信するために、PoFx は IRQL < DISPATCH_LEVEL で PEP の AcceptDeviceNotification コールバック ルーチンを呼び出します。