Поделиться через


Функция ZwPowerInformation (ntddk.h)

Подпрограмма ZwPowerInformation задает или извлекает сведения о энергопотреблении системы.

Синтаксис

NTSYSAPI NTSTATUS ZwPowerInformation(
  [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. Для параметра необходимо задать нулевое значение.

[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
У вызывающего объекта недостаточно прав доступа для выполнения запрошенного действия.

Комментарии

NtPowerInformation и ZwPowerInformation — это две версии одной и той же подпрограммы windows Native System Services.

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.

Примеры

В этом примере показан допустимый вызов функции.

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

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Wdm.h, Ntddk.h, Ntpoapi.h)
Библиотека Ntoskrnl.lib
DLL Ntoskrnl.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

См. также раздел

POWER_PLATFORM_INFORMATION

Использование версий Nt и Zw собственных процедур системных служб