Função NtPowerInformation (wdm.h)

A rotina NtPowerInformation define ou recupera informações de energia do sistema.

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtPowerInformation(
  [in]            POWER_INFORMATION_LEVEL InformationLevel,
  [in, optional]  PVOID                   InputBuffer,
  [in]            ULONG                   InputBufferLength,
  [out, optional] PVOID                   OutputBuffer,
  [in]            ULONG                   OutputBufferLength
);

Parâmetros

[in] InformationLevel

Especifica o nível de informações solicitado, que indica as informações de energia específicas a serem definidas ou recuperadas. Atualmente, o único valor de POWER_INFORMATION_LEVEL com suporte é PlatformInformation.

Valor Descrição
PlatformInformation As informações representam os recursos de energia com suporte no momento do sistema. As informações podem ser alteradas à medida que os drivers são instalados. Por exemplo, a instalação de drivers de dispositivo herdados que não dão suporte ao gerenciamento de energia pode modificar os recursos do sistema.

[in, optional] InputBuffer

Ponteiro para um buffer de entrada alocado pelo chamador. Esse parâmetro deve ser NULL; caso contrário, ERROR_INVALID_PARAMETER será retornado.

[in] InputBufferLength

Tamanho, em bytes, do buffer em InputBuffer. O parâmetro deve ser definido como zero.

[out, optional] OutputBuffer

Um ponteiro para um buffer de saída. O tipo de dados desse buffer depende do nível de informações solicitado no parâmetro InformationLevel . Para o nível PlatformInformation , o único valor com suporte no momento, o parâmetro OutputBuffer é necessário e deve ser do tipo POWER_PLATFORM_INFORMATION .

[in] OutputBufferLength

Tamanho, em bytes, do buffer de saída. Dependendo do nível de informações solicitado, o buffer pode ser dimensionado variavelmente. PlatformInformation, o único valor com suporte no momento, requer um buffer do tamanho de uma estrutura POWER_PLATFORM_INFORMATION .

Retornar valor

Retorna STATUS_SUCCESS se a chamada for bem-sucedida. Se a chamada falhar, os códigos de erro possíveis incluem o seguinte:

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL O buffer de saída é de tamanho insuficiente para conter os dados que estão sendo retornados.
STATUS_INVALID_PARAMETER O nível de informações PlatformInformation , que é o único valor com suporte no momento, não requer nenhum buffer de entrada e deve conter um buffer de saída. O chamador forneceu um buffer de entrada ou nenhum buffer de saída.
STATUS_ACCESS_DENIED O chamador não tinha direitos de acesso suficientes para executar a ação solicitada.

Comentários

NtPowerInformation e ZwPowerInformation são duas versões da mesma rotina do Windows Native System Services.

Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt and Zw Versions of the Native System Services Routines.

Exemplos

Este exemplo ilustra uma chamada de função válida.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntpoapi.h)
Biblioteca Ntoskrnl.lib
DLL Ntoskrnl.lib
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Confira também

POWER_PLATFORM_INFORMATION

Usando versões Nt e Zw das rotinas de serviços do sistema nativo