PoSetPowerState 関数 (wdm.h)
PoSetPowerState ルーチンは、デバイスのデバイス電源状態の変更をシステムに通知します。
構文
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
パラメーター
[in] DeviceObject
ターゲット DEVICE_OBJECTへのポインター。
[in] Type
POWER_STATE_TYPE値を示します。 ドライバーは DevicePowerState を指定する必要があります。
[in] State
設定する電源状態を指定します。 ドライバーは 、DEVICE_POWER_STATE 値を指定する必要があります。
戻り値
Windows 2000 以降のバージョンのオペレーティング システムでは、 PoSetPowerState は以前の電源状態を返します。 Windows 98/Me では、 PoSetPowerState は State で渡された状態を返します。
注釈
PoSetPowerState は、デバイスの新しい電源状態を 電源マネージャー に通知します。 デバイス スタック内の各ドライバー (フィルター、関数、バス ドライバー) は、 PoSetPowerState を呼び出して、対応するデバイス オブジェクトの電源状態の変化を電源マネージャーに通知する必要があります。 例:
- ドライバーは、デバイスの電源設定要求を受信した後、 PoStartNextPowerIrp を呼び出す前に、このルーチンを呼び出します。 PnP IRP_MN_START_DEVICE 要求を処理する場合、ドライバーは PoSetPowerState を呼び出して、デバイスが D0 状態であることを電源マネージャーに通知する必要があります。
- デバイスの電源が切れている場合、ドライバーは D0 状態を終了する前に PoSetPowerState を呼び出す必要があります。 さらに、 ドライバーは、PoSetPowerState が返される前にクライアント要求を処理できる必要があります。
- デバイスの電源がオンになっている場合、ドライバーは、デバイスが D0 状態に正常に配置された後、 PoSetPowerState を呼び出す必要があります。
PoSetPowerState の呼び出し元は、状態を D0 に設定する場合を除き、IRQL <= APC_LEVELで実行されている必要があります。 状態を D0 に設定すると、呼び出し元は IRQL <= DISPATCH_LEVELで実行できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 「解説」を参照してください。 |