PoFxPowerControl 関数 (wdm.h)
PoFxPowerControl ルーチンは、電源管理フレームワーク (PoFx) に電源制御要求を送信します。
構文
NTSTATUS PoFxPowerControl(
[in] POHANDLE Handle,
[in] LPCGUID PowerControlCode,
[in, optional] PVOID InBuffer,
[in] SIZE_T InBufferSize,
[out, optional] PVOID OutBuffer,
[in] SIZE_T OutBufferSize,
[out, optional] PSIZE_T BytesReturned
);
パラメーター
[in] Handle
PoFx を使用したデバイスの登録を表すハンドル。 デバイス ドライバーは、以前に PoFxRegisterDevice ルーチンからこのハンドルを受信しました。
[in] PowerControlCode
電源制御コードへのポインター。 このコードは、要求された操作を指定する GUID 値です。
[in, optional] InBuffer
操作の入力データを含む呼び出し元によって割り当てられたバッファーへのポインター。 このバッファー内のデータの形式は、 PowerControlCode パラメーターで指定された電源制御コードによって異なります。 InBuffer パラメーターは省略可能であり、指定した操作で入力データが必要ない場合は NULL として指定できます。
[in] InBufferSize
InBuffer パラメーターによって指される入力バッファーのサイズ (バイト単位)。 InBuffer が NULL の場合は、InBufferSize を 0 に設定します。
[out, optional] OutBuffer
操作からの出力データを格納する呼び出し元によって割り当てられたバッファーへのポインター。 このバッファー内のデータの形式は、 PowerControlCode パラメーターで指定された電源制御コードによって異なります。 OutBuffer パラメーターは省略可能であり、指定した操作で出力データが生成されない場合は NULL として指定できます。
[in] OutBufferSize
OutBuffer パラメーターが指す出力バッファーのサイズ (バイト単位)。 OutBuffer が NULL の場合は、OutBufferSize を 0 に設定します。
[out, optional] BytesReturned
OutBuffer が指すバッファーに書き込まれたデータのバイト数をルーチンが書き込む位置へのポインター。 書き込まれるバイト数は OutBufferSize 以下になります。 このパラメーターは省略可能であり、呼び出し元が出力バッファーに書き込まれたバイト数を知る必要がない場合は NULL として指定できます。
戻り値
要求された操作が成功した場合、PoFxPowerControl はSTATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。
リターン コード | 説明 |
---|---|
|
要求された電源制御操作は実装されていません。 |
|
電源エンジン プラグイン (PEP) は、このデバイスのサポートを確認しません。 |
注釈
デバイス ドライバーは、電源制御要求を PoFx に直接送信するには、このルーチンを呼び出します。 電源制御要求は、I/O 制御要求 (IOCTL) に似ています。 ただし、IOCTL とは異なり、電源制御要求は PoFx に直接送信され、デバイス スタック内の他のデバイス ドライバーによって監視されません。 PoFxPowerControl 呼び出し中に、PoFx は要求された操作を同期的に実行します。
同様に、PoFx はデバイス ドライバーに電源制御要求を直接送信できます。 ドライバーは、 PowerControlCallback ルーチンでこの要求を処理します。
PoFx は、すべての電源制御要求の処理を電源エンジン プラグイン (PEP) に委任します。 PEP は、プロセッサの特定の製品ラインまたは System on a Chip (SoC) モジュールに固有の電源管理タスクを実行するオプションのソフトウェア コンポーネントです。 プロセッサまたは SoC のハードウェア ベンダーがハードウェア プラットフォーム用の PEP を提供している場合、この PEP はデバイス ドライバーからのカスタム電源制御要求を処理したり、カスタム電源制御要求をドライバーの PowerControlCallback ルーチンに送信したりする可能性があります。 ベンダーは、 PowerControlCode GUID のセットを指定し、これらの GUID によって指定される操作を定義できます。 オプションとして、デバイス ドライバーには、これらの操作の要求を処理または送信するためのプラットフォーム固有のコードを含めることができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h |
Library | Ntoskrnl.lib |
[DLL] | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |