Função PoFxPowerControl (wdm.h)

A rotina PoFxPowerControl envia uma solicitação de controle de energia para a PoFx (estrutura de gerenciamento de energia).

Sintaxe

NTSTATUS PoFxPowerControl(
  [in]            POHANDLE Handle,
  [in]            LPCGUID  PowerControlCode,
  [in, optional]  PVOID    InBuffer,
  [in]            SIZE_T   InBufferSize,
  [out, optional] PVOID    OutBuffer,
  [in]            SIZE_T   OutBufferSize,
  [out, optional] PSIZE_T  BytesReturned
);

Parâmetros

[in] Handle

Um identificador que representa o registro do dispositivo com PoFx. O driver de dispositivo recebeu anteriormente esse identificador da rotina PoFxRegisterDevice .

[in] PowerControlCode

Um ponteiro para o código de controle de energia. Esse código é um valor GUID que especifica a operação solicitada.

[in, optional] InBuffer

Um ponteiro para um buffer alocado pelo chamador que contém os dados de entrada para a operação. O formato dos dados nesse buffer depende do código de controle de energia especificado pelo parâmetro PowerControlCode . O parâmetro InBuffer é opcional e pode ser especificado como NULL se a operação especificada não exigir dados de entrada.

[in] InBufferSize

O tamanho, em bytes, do buffer de entrada apontado pelo parâmetro InBuffer . Se InBuffer for NULL, defina InBufferSize como zero.

[out, optional] OutBuffer

Um ponteiro para um buffer alocado pelo chamador que deve conter os dados de saída da operação. O formato dos dados nesse buffer depende do código de controle de energia especificado pelo parâmetro PowerControlCode . O parâmetro OutBuffer é opcional e pode ser especificado como NULL se a operação especificada não produzir dados de saída.

[in] OutBufferSize

O tamanho, em bytes, do buffer de saída apontado pelo parâmetro OutBuffer . Se OutBuffer for NULL, defina OutBufferSize como zero.

[out, optional] BytesReturned

Um ponteiro para um local no qual a rotina grava o número de bytes de dados que foram gravados no buffer apontado pelo OutBuffer. O número de bytes gravados será menor ou igual a OutBufferSize. Esse parâmetro é opcional e pode ser especificado como NULL se o chamador não precisar saber quantos bytes foram gravados no buffer de saída.

Retornar valor

PoFxPowerControl retornará STATUS_SUCCESS se a operação solicitada for bem-sucedida. Os possíveis valores retornados por erro incluem o código de status a seguir.

Código de retorno Descrição
STATUS_NOT_IMPLEMENTED
A operação de controle de energia solicitada não foi implementada.
STATUS_NOT_SUPPORTED
O PEP (plug-in do power engine) não reconhece o suporte para este dispositivo.

Comentários

Um driver de dispositivo chama essa rotina para enviar uma solicitação de controle de energia diretamente para PoFx. Uma solicitação de controle de energia é semelhante a uma IOCTL (solicitação de controle de E/S). Ao contrário de um IOCTL, no entanto, uma solicitação de controle de energia é enviada diretamente para PoFx e não é observada por outros drivers de dispositivo na pilha do dispositivo. Durante uma chamada PoFxPowerControl , o PoFx executa a operação solicitada de forma síncrona.

Da mesma forma, o PoFx pode enviar uma solicitação de controle de energia diretamente para o driver do dispositivo. O driver lida com essa solicitação em sua rotina PowerControlCallback .

A PoFx delega a manipulação de todas as solicitações de controle de energia para o PEP (plug-in do power engine). O PEP é um componente de software opcional que executa tarefas de gerenciamento de energia específicas para uma determinada linha de produtos de processador ou módulos SoC (System on a Chip). Se o fornecedor de hardware para o processador ou SoC fornecer um PEP para uma plataforma de hardware, esse PEP poderá lidar com solicitações de controle de energia personalizadas de um driver de dispositivo ou pode enviar solicitações de controle de energia personalizadas para a rotina PowerControlCallback do driver. O fornecedor pode especificar um conjunto de GUIDs do PowerControlCode e definir as operações designadas por esses GUIDs. Como opção, um driver de dispositivo pode conter código específico da plataforma para manipular ou enviar solicitações para essas operações.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Plataforma de Destino Universal
Cabeçalho wdm.h
Biblioteca Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

PoFxRegisterDevice

PowerControlCallback