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


Функция 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. Параметр должен иметь значение нулю.

[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 Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между 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
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntpoapi.h)
библиотеки Ntoskrnl.lib
DLL Ntoskrnl.lib
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDDIs, PowerIrpDDis

См. также

POWER_PLATFORM_INFORMATION

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