次の方法で共有


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 として指定できます。

戻り値

要求された操作が成功した場合、PoFxPowerControlSTATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。

リターン コード 説明
STATUS_NOT_IMPLEMENTED
要求された電源制御操作は実装されていません。
STATUS_NOT_SUPPORTED
電源エンジン プラグイン (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

こちらもご覧ください

PoFxRegisterDevice

PowerControlCallback