PoRegisterDeviceForIdleDetection 関数 (wdm.h)
PoRegisterDeviceForIdleDetection ルーチンは、アイドル状態の検出を有効または取り消し、デバイスのアイドル タイムアウト値を設定します。
構文
PULONG PoRegisterDeviceForIdleDetection(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG ConservationIdleTime,
[in] ULONG PerformanceIdleTime,
[in] DEVICE_POWER_STATE State
);
パラメーター
[in] DeviceObject
デバイスのドライバーによって作成された DEVICE_OBJECT へのポインター。 Windows 2000 以降のシステムでは、このパラメーターは物理デバイス オブジェクト (PDO) または機能デバイス オブジェクト (FDO) を指すことができます。 Windows 98/Me では、このパラメーターは基になるデバイスの PDO を指している必要があります。
[in] ConservationIdleTime
システム電源ポリシーで省エネが最適化されたときに適用するタイムアウト値 (秒単位) を設定します。 保存ポリシーが有効な場合にアイドル検出を無効にするには、0 を指定します。
[in] PerformanceIdleTime
システム電源ポリシーがパフォーマンスを最適化するときに適用するタイムアウト値 (秒単位) を設定します。 パフォーマンス ポリシーが有効な場合にアイドル検出を無効にするには、0 を指定します。
[in] State
ConservationIdleTime または PerformanceIdleTime のいずれかが満たされた場合に、IRP_MN_SET_POWER要求で要求されるデバイスの電源状態を指定します。 使用できる値は 、DEVICE_POWER_STATE 値です。
戻り値
PoRegisterDeviceForIdleDetection は、アイドル検出が有効になっていることを示すアイドル カウンターへのポインターを返します。 アイドル状態の検出が無効になっているか、アイドル カウンターを割り当てられなかったか、タイムアウト値の一方または両方が無効であることを示す NULL を 返します。
注釈
PoRegisterDeviceForIdleDetection を使用すると、ドライバーは 電源マネージャーによって提供されるアイドル状態の検出メカニズムを使用できます。 ドライバーは、次のいずれかの理由で PoRegisterDeviceForIdleDetection を呼び出します。
- デバイスのアイドル検出を有効にし、初期アイドル タイムアウト値を設定するには
- デバイスのアイドルタイムアウト値を変更するには
- デバイスのアイドル状態の検出を無効にするには
デバイスが現在のアイドル タイムアウト値を満たすたびに、電源マネージャーはデバイスの電源状態状態を指定して、デバイス スタックの先頭に IRP_MN_SET_POWER 要求を送信 します。 IRP に応答して、各ドライバーは、電源状態遷移の前に必要なデバイス固有のタスクを実行し、次の下位ドライバーに IRP を渡します。 IRP がバス ドライバーに到達すると、そのドライバーは、要求された低電力状態にデバイスを配置し、IRP を完了します。
PoRegisterDeviceForIdleDetection は 、保存とパフォーマンスの両方のタイムアウト値を設定します。 ConservationIdleTime 値は、システム電源ポリシーが保全のために最適化する場合に適用されます。PerformanceIdleTime 値は、システム電源ポリシーがパフォーマンスを最適化する場合に適用されます。 通常、適用可能なポリシーは電源によって異なります。AC 電源で実行すると、システムはパフォーマンスを最適化し、バッテリをオフにすると、システムが節約のために最適化されます。
一部のデバイスでは、-1 のタイムアウト値を指定して、デバイス クラスの標準電源ポリシータイムアウトを使用できます。 標準のタイムアウト値は、サポートされている標準デバイス クラスのシステム統合を向上させます。 現時点では、WDM では、FILE_DEVICE_DISKとFILE_DEVICE_MASS_STORAGEの種類のデバイスでこの機能がサポートされています。 サポートされていない型のデバイスに -1 が指定されている場合、PoRegisterDeviceForIdleDetection は NULL を返します。 (デバイスの種類の詳細については、「 デバイスの種類の指定」を参照してください)。
デバイスごとに設定できるアイドル状態の検出は 1 つだけです。 PoRegisterDeviceForIdleDetection の後続の呼び出しにより、アイドル状態の検出値が変更されます。
ConservationIdleTime と PerformanceIdleTime の両方が 0 の場合、このルーチンはデバイスのすべてのアイドル状態の検出を取り消し、NULL を返します。
PoRegisterDeviceForIdleDetection は、独自のアイドル検出を実行する必要からドライバーを解放できます。 ただし、ドライバーは独自のアイドル検出を実装することもできます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |