NtPowerInformation 関数 (ntpoapi.h)

ZwPowerInformation ルーチンは、システム電源情報を設定または取得します。

構文

__kernel_entry NTSYSCALLAPI NTSTATUS NtPowerInformation(
  [in]            POWER_INFORMATION_LEVEL InformationLevel,
  [in, optional]  PVOID                   InputBuffer,
  [in]            ULONG                   InputBufferLength,
  [out, optional] PVOID                   OutputBuffer,
  [in]            ULONG                   OutputBufferLength
);

パラメーター

[in] InformationLevel

設定または取得する特定の電源情報を示す、要求された情報レベルを指定します。 現在、サポートされている POWER_INFORMATION_LEVEL の値は PlatformInformation のみです。

意味
PlatformInformation
情報は、現在サポートされているシステムの電源機能を表します。 ドライバーがインストールされると、情報が変更される場合があります。 たとえば、電源管理をサポートしていないレガシ デバイス ドライバーをインストールすると、システムの機能が変更される場合があります。

[in, optional] InputBuffer

呼び出し元によって割り当てられた入力バッファーへのポインター。 このパラメーターは NULL である必要があります。それ以外 の場合は、ERROR_INVALID_PARAMETER が返されます。

[in] InputBufferLength

InputBuffer のバッファーのサイズ (バイト単位)。 パラメーターは 0 に設定する必要があります。

[out, optional] OutputBuffer

出力バッファーへのポインター。 このバッファーのデータ型は、 InformationLevel パラメーターで要求された情報レベルによって異なります。 PlatformInformation レベルでは、現在サポートされている唯一の値である OutputBuffer パラメーターが必要であり、POWER_PLATFORM_INFORMATION型である必要があります。

[in] OutputBufferLength

出力バッファーのサイズ (バイト単位)。 要求された情報レベルによっては、バッファーのサイズが可変になる場合があります。 現在サポートされている唯一の値である PlatformInformation には、POWER_PLATFORM_INFORMATION構造体のサイズであるバッファーが必要です。

戻り値

呼び出しが成功した場合STATUS_SUCCESSを返します。 呼び出しが失敗した場合、考えられるエラー コードは次のとおりです。

リターン コード 説明
STATUS_BUFFER_TOO_SMALL
出力バッファーのサイズが不十分で、返されるデータを格納できません。
STATUS_INVALID_PARAMETER
現在サポートされている唯一の値である PlatformInformation 情報レベルには、入力バッファーは必要なく、出力バッファーを含める必要があります。 呼び出し元が入力バッファーを指定したか、出力バッファーを指定しなかった。
STATUS_ACCESS_DENIED
呼び出し元には、要求されたアクションを実行するための十分なアクセス権がありませんでした。

注釈

NtPowerInformationZwPowerInformation は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx バージョンと ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください。

この例では、有効な関数呼び出しを示します。

POWER_PLATFORM_INFORMATION PlatformInfo = {0};
NTSTATUS Result = NtPowerInformation(PlatformInformation, NULL, 0, &PlatformInfo, sizeof(PlatformInfo));

要件

要件
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム ユニバーサル
Header ntpoapi.h (Wdm.h、Ntddk.h、Ntpoapi.h を含む)
Library Ntoskrnl.lib
[DLL] Ntoskrnl.lib
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs、PowerIrpDDis

こちらもご覧ください

POWER_PLATFORM_INFORMATION

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用