Функция 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_REQUIRED, ES_DISPLAY_REQUIRED или ES_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, функция применяет значения SYSTEM_POWER_POLICY , переданные в lpInBuffer , к текущей системной политике управления питанием, используемой во время работы системы с питанием от переменного тока (служебной программы).

Буфер lpOutputBuffer получает SYSTEM_POWER_POLICY структуру, содержащую текущую политику управления питанием системы, используемую во время работы системы с питанием от переменного тока (служебной программы).

SystemPowerPolicyCurrent
8
Параметр lpInBuffer должен иметь значение NULL; В противном случае функция возвращает ERROR_INVALID_PARAMETER.

Буфер lpOutputBuffer получает SYSTEM_POWER_POLICY структуру, содержащую текущую политику управления питанием системы, используемую во время работы системы с питанием от переменного тока (служебной программы).

SystemPowerPolicyDc
1
Если lpInBuffer не равно NULL, функция применяет значения SYSTEM_POWER_POLICY , переданные в lpInBuffer , к текущей системной политике питания, используемой во время работы системы от батареи.

Буфер 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, или последующими вызовами WritePwrScheme, SetActivePwrScheme или других функций схемы питания.

Дополнительные сведения об использовании PowrProf.h см. в разделе Схемы питания.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header 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