NtPowerInformation 関数 (wdm.h)

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

構文

__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 バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。

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

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

要件

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

こちらもご覧ください

POWER_PLATFORM_INFORMATION

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