共用方式為


CallNtPowerInformation 函式 (powerbase.h)

設定或擷取電源資訊。

語法

NTSTATUS CallNtPowerInformation(
  [in]  POWER_INFORMATION_LEVEL InformationLevel,
  [in]  PVOID                   InputBuffer,
  [in]  ULONG                   InputBufferLength,
  [out] PVOID                   OutputBuffer,
  [in]  ULONG                   OutputBufferLength
);

參數

[in] InformationLevel

要求的信息層級。 這個值表示要設定或擷取的特定電源資訊。 此參數必須是下列其中一個 POWER_INFORMATION_LEVEL 列舉型別值。

意義
AdministratorPowerPolicy
9
不支援此資訊層級。
LastSleepTime
15
lpInBuffer 參數必須是 NULL;否則,函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會接收 ULONGLONG,以 100 奈秒為單位指定上次系統睡眠時間的中斷時間計數。

LastWakeTime
14
lpInBuffer 參數必須是 NULL;否則,函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會接收 ULONGLONG,以 100 奈秒為單位指定上次系統喚醒時間的中斷時間計數。

ProcessorInformation
11
lpInBuffer 參數必須是 NULL;否則函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會針對安裝在系統上的每個處理器接收一個PROCESSOR_POWER_INFORMATION結構。 使用 GetSystemInfo 函式來擷取處理器數目。

ProcessorPowerPolicyAc
18
不支援此資訊層級。
ProcessorPowerPolicyCurrent
22
不支援此資訊層級。
ProcessorPowerPolicyDc
19
不支援此資訊層級。
SystemBatteryState
5
lpInBuffer 參數必須是 NULL;否則,函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會接收包含目前系統電池相關信息的SYSTEM_BATTERY_STATE結構

SystemExecutionState
16
lpInBuffer 參數必須是 NULL;否則函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會收到包含系統執行狀態緩衝區的 ULONG 值。 此值可能包含下列值的任何組合: ES_SYSTEM_REQUIREDES_DISPLAY_REQUIREDES_USER_PRESENT。 如需詳細資訊,請參閱 SetThreadExecutionState 函式。

SystemPowerCapabilities
4
lpInBuffer 參數必須是 NULL,否則函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會接收包含目前系統電源功能的SYSTEM_POWER_CAPABILITIES結構。

這項資訊代表目前支援的電源功能。 它可能會隨著驅動程式安裝在系統中而變更。 例如,安裝不支援電源管理的舊版設備驅動器會停用所有系統睡眠狀態。

SystemPowerInformation
12
lpInBuffer 參數必須是 NULL;否則,函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會接收SYSTEM_POWER_INFORMATION結構。

應用程式可以使用這個層級來擷取系統閑置的相關信息。

SystemPowerPolicyAc
0
如果 lpInBuffer 不是 NULL,則函式會將傳入 lpInBufferSYSTEM_POWER_POLICY值套用至目前系統電源原則,而系統在 AC (公用程式上執行時) 電源。

lpOutputBuffer 緩衝區會收到SYSTEM_POWER_POLICY結構,其中包含系統在 AC (公用程式上執行時所使用的目前系統電源原則) 電源。

SystemPowerPolicyCurrent
8
lpInBuffer 參數必須是 NULL;否則,函式會傳回ERROR_INVALID_PARAMETER

lpOutputBuffer 緩衝區會收到SYSTEM_POWER_POLICY結構,其中包含系統在 AC (公用程式上執行時所使用的目前系統電源原則) 電源。

SystemPowerPolicyDc
1
如果 lpInBuffer 不是 NULL,則函式會將傳入 lpInBufferSYSTEM_POWER_POLICY值套用至在電池電源上執行時所使用的目前系統電源原則。

lpOutputBuffer 緩衝區會收到SYSTEM_POWER_POLICY結構,其中包含系統在電池電源上執行時所使用的目前系統電源原則。

SystemReserveHiberFile
10
如果 lpInBuffer 不是 NULL ,而且目前的使用者具有足夠的許可權,則函式會認可或取消認可在開機磁碟區上保存休眠映射所需的記憶體。

lpInBuffer 參數必須指向指出所需要求的 BOOLEAN 值。 如果值為 TRUE,則會保留休眠檔案;如果值為 FALSE,則會移除休眠檔案。

VerifyProcessorPowerPolicyAc
20
不支援此資訊層級。
VerifyProcessorPowerPolicyDc
21
不支援此資訊層級。
VerifySystemPolicyAc
2
不支援此資訊層級。
VerifySystemPolicyDc
3
不支援此資訊層級。

[in] InputBuffer

選擇性輸入緩衝區的指標。 此緩衝區的數據類型取決於 InformationLevel 參數中所要求的資訊層級。

[in] InputBufferLength

輸入緩衝區的大小,以位元組為單位。

[out] OutputBuffer

選擇性輸出緩衝區的指標。 此緩衝區的數據類型取決於 InformationLevel 參數中所要求的資訊層級。 如果緩衝區太小而無法包含資訊,函式會傳回STATUS_BUFFER_TOO_SMALL。

[in] OutputBufferLength

輸出緩衝區的大小 (以位元組為單位)。 視要求的信息層級而定,這可能是可變大小的緩衝區。

傳回值

如果函式成功,傳回值 會STATUS_SUCCESS

如果函式失敗,傳回值可以是下列狀態代碼之一。

狀態 意義
STATUS_BUFFER_TOO_SMALL
輸出緩衝區的大小不足,無法包含要傳回的數據。
STATUS_ACCESS_DENIED
呼叫端的訪問許可權不足,無法執行要求的動作。

備註

使用 CallNtPowerInformation 對目前系統電源原則所做的變更是立即的,但不是持續性的;也就是說,變更不會儲存為電源配置的一部分。 使用 CallNtPowerInformation 對系統電源原則所做的任何變更,都可以由 Power Options 控制面板程式中使用者所做的原則配置變更,或後續呼叫 WritePwrSchemeSetActivePwrScheme 或其他電源配置函式來覆寫。

如需使用 PowrProf.h 的詳細資訊,請參閱 Power Schemes

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 powerbase.h
程式庫 PowrProf.lib
Dll PowrProf.dll

另請參閱

ADMINISTRATOR_POWER_POLICY

PROCESSOR_POWER_INFORMATION

PROCESSOR_POWER_POLICY

電源管理功能

SYSTEM_BATTERY_STATE結構

SYSTEM_POWER_CAPABILITIES

SYSTEM_POWER_INFORMATION

SYSTEM_POWER_POLICY