IOCTL_PMI_GET_CAPABILITIES IOCTL (pmi.h)

A solicitação IOCTL_PMI_GET_CAPABILITIES obtém as informações de recursos e ativos sobre um medidor de energia.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

O membro AssociatedIrp.SystemBuffer do IRP (pacote de solicitação de E/S) aponta para um buffer alocado pelo iniciador que é usado como o buffer de entrada e o buffer de saída para a solicitação. Na entrada, esse buffer contém uma estrutura PMI_CAPABILITIES na qual os membros Version e CapabilityType são definidos como valores válidos. O membro CapabilitiesType contém um valor de enumeração PMI_CAPABILITIES_TYPE que especifica o tipo de informações de funcionalidade pmi a serem recuperadas do medidor de energia. Esse valor também determina o tamanho do buffer de saída necessário para conter essas informações.

Comprimento do buffer de entrada

O membro Parameters.DeviceIoControl.InputBufferLength do local da pilha de E/S atual do IRP (IO_STACK_LOCATION) é definido como o tamanho em bytes do buffer apontado pelo membro AssociatedIrp.SystemBuffer . Esse tamanho deve ser maior ou igual a sizeof(PMI_CAPABILITIES) ou a solicitação falhará com um erro status de STATUS_INVALID_PARAMETER.

Buffer de saída

Se a solicitação for concluída com êxito, o buffer apontado pelo membro AssociatedIrp.SystemBuffer conterá as informações de funcionalidade do PMI solicitadas. Localizado no início desse buffer está uma estrutura PMI_CAPABILITIES que indica o tipo e o tamanho das informações no buffer.

Comprimento do buffer de saída

O membro Parameters.DeviceIoControl.OutputBufferLength do local de pilha de E/S atual do IRP é definido como o tamanho em bytes do buffer apontado pelo membro AssociatedIrp.SystemBuffer . Para que a solicitação seja bem-sucedida, esse tamanho deve ser grande o suficiente para conter as informações de funcionalidade do PMI especificadas pelo valor do parâmetro de entrada PMI_CAPABILITIES_TYPE . Caso contrário, a solicitação falhará com o erro status STATUS_BUFFER_TOO_SMALL.

Bloco de status

O membro Information é definido como o tamanho, em bytes, de uma estrutura PMI_CAPABILITIES e seus dados de comprimento variável.

O membro Status é definido como um dos seguintes valores:

STATUS_BUFFER_TOO_SMALL

O membro Parameters.DeviceIoControl.OutputBufferLength do IRP é menor que o tamanho, em bytes, de uma estrutura PMI_CAPABILITIES e seus dados de comprimento variável.

STATUS_INVALID_PARAMETER

O buffer de entrada alocado pelo iniciador contém um valor de PMI_CAPABILITIES_TYPE inválido.

STATUS_SUCCESS

O driver WDM que dá suporte à interface PMI concluiu a solicitação IOCTL com êxito.

Comentários

O IOCTL_PMI_GET_CAPABILITIES solicitação consulta as funcionalidades do PMI ou as informações de ativo do medidor de energia. O valor de enumeração de PMI_CAPABILITIES de entrada especifica o tipo de informações de funcionalidade a serem retornadas. O tipo de dados e o conteúdo do buffer de saída variam de acordo com os dados solicitados.

A tabela a seguir descreve o tipo de dados retornados para o valor de enumeração PMI_CAPABILITIES_TYPE especificado.

PMI_CAPABILITIES_TYPE valor Descrição
PmiMeteredHardware Uma estrutura PMI_METERED_HARDWARE_INFORMATION que especifica os dispositivos de hardware que o medidor de energia monitora.
PmiReportedCapabilities Uma estrutura PMI_REPORTED_CAPABILITIES que especifica os tipos de recursos pmi compatíveis com o medidor de energia.
Nota A estrutura PMI_REPORTED_CAPABILITIES é de comprimento variável. O driver deverá falhar nessa solicitação IOCTL se o buffer de saída (referenciado pelo membro MdlAddress do IRP) for muito pequeno.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 7, Windows Server 2008 R2 e versões posteriores dos sistemas operacionais Windows.
Cabeçalho pmi.h (inclua Pmi.h)

Confira também

IO_STACK_LOCATION

IRP

PMI_CAPABILITIES

PMI_CAPABILITIES_TYPE

PMI_METERED_HARDWARE_INFORMATION

PMI_REPORTED_CAPABILITIES