Compartilhar via


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

Buffer de saída

Se a solicitação for concluída com êxito, o buffer apontado pelo membro AssociatedIrp.SystemBuffer contém 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 Parameters.DeviceIoControl.OutputBufferLength membro do local da 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 status de erro 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 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.

Observações

A solicitação IOCTL_PMI_GET_CAPABILITIES consulta as funcionalidades do PMI ou 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 que o medidor de energia dá suporte.
Observação A estrutura PMI_REPORTED_CAPABILITIES é de comprimento variável. O driver deve falhar nessa solicitação IOCTL se o buffer de saída (referenciado pelo MdlAddress membro do IRP) for muito pequeno.
 

Requisitos

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

Consulte também

IO_STACK_LOCATION

IRP

PMI_CAPABILITIES

PMI_CAPABILITIES_TYPE

PMI_METERED_HARDWARE_INFORMATION

PMI_REPORTED_CAPABILITIES