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

Description
PlatformInformation 資訊代表系統目前支援的電源功能。 安裝驅動程式時的資訊可能會變更。 例如,安裝不支援電源管理的舊版設備驅動器可能會修改系統的功能。

[in, optional] InputBuffer

呼叫端配置的輸入緩衝區指標。 此參數必須是 NULL,否則 會傳回ERROR_INVALID_PARAMETER

[in] InputBufferLength

InputBuffer 緩衝區的大小,以位元組為單位。 參數必須設定為零。

[out, optional] OutputBuffer

輸出緩衝區的指標。 此緩衝區的數據類型取決於 InformationLevel 參數中所要求的資訊層級。 針對 PlatformInformation 層級,唯一支援的值是 OutputBuffer 參數,而且必須是 POWER_PLATFORM_INFORMATION 類型。

[in] OutputBufferLength

輸出緩衝區的大小,以位元組為單位。 視要求的信息層級而定,緩衝區的大小可能會有所不同。 PlatformInformation 是目前唯一支援的值,需要具有 POWER_PLATFORM_INFORMATION 結構大小的緩衝區。

傳回值

如果呼叫成功,則傳回STATUS_SUCCESS。 如果呼叫失敗,可能的錯誤碼包括下列各項:

傳回碼 Description
STATUS_BUFFER_TOO_SMALL 輸出緩衝區的大小不足,無法包含所傳回的數據。
STATUS_INVALID_PARAMETER PlatformInformation 資訊層級是目前唯一支援的值,不需要任何輸入緩衝區,而且必須包含輸出緩衝區。 呼叫端提供輸入緩衝區或沒有輸出緩衝區。
STATUS_ACCESS_DENIED 呼叫端的訪問許可權不足,無法執行要求的動作。

備註

NtPowerInformationZwPowerInformation 是相同 Windows 原生系統服務例程的兩個版本。

對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxxZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

範例

此範例說明有效的函數調用。

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

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntpoapi.h)
程式庫 Ntoskrnl.lib
Dll Ntoskrnl.lib
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS、 PowerIrpDDis

另請參閱

POWER_PLATFORM_INFORMATION

使用原生系統服務例程的 Nt 和 Zw 版本