Compartilhar via


IOCTL_EMI_GET_MEASUREMENT IOCTL (emi.h)

O código de controle IOCTL_EMI_GET_MEASUREMENT recupera a medida de energia atual e a hora em que a medida foi tomada.

Buffer de entrada

Nenhum.

Comprimento do buffer de entrada

Nenhum.

Buffer de saída

O membro AssociatedIrp.SystemBuffer especifica o endereço de um buffer alocado pelo chamador que contém os dados de medida do driver de dispositivo do provedor.

Comprimento do buffer de saída

O tamanho do buffer de saída deve ser o tamanho de EMI_MEASUREMENT_DATA_V1 ou EMI_MEASUREMENT_DATA_V2 multiplicar por número de canais, ele é especificado no membro Parameters.DeviceIoControl.OutputBufferLength .

Comentários

Para a EMI versão 1 e 2, os dados de medição de EMI relatados de cada canal devem ser acumulados e convertidos para a unidade especificada pelo canal em cada solicitação, pois a interface EMI de qualquer dispositivo deve ser compartilhada em todo o sistema, portanto, a frequência com que os contadores estão sendo amostrados e acumulados depende da frequência com que cada uma de suas solicitações de consumidor e também da implementação do driver.

Para a EMI versão 2, vários canais são expostos pelo mesmo dispositivo devem ser amostrados ao mesmo tempo em cada solicitação, portanto, o chamador deve usar o ChannelCount no EMI_METADATA_V2 para percorrer os canais, por exemplo:


  status = DeviceIoControl(DeviceHandle,
                           IOCTL_EMI_GET_MEASUREMENT,
                           NULL,
                           NULL,
                           Data,
                           ChannelDataSize,
                           BytesReturned,
                           NULL);

  EMI_CHANNEL_V2* Channel = &MetaData->Channels[0];
  for (int i = 0 ; i < MetaData->ChannelCount && status ; i++) {
      
      //
      // Get energy measurement for each energy counter.
      //

      AbsoluteEnergy = Measurement->ChannelData[i].AbsoluteEnergy;
      AbsoluteTime = Measurement->ChannelData[i].AbsoluteTime;
  }

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 10.
Cabeçalho emi.h (inclua Emi.h)

Confira também

EMI_METADATA_V2
EMI_MEASUREMENT_DATA_V2
Interface de medição de energia