IOCTL_EMI_GET_MEASUREMENT IOCTL (emi.h)
Le code de contrôle IOCTL_EMI_GET_MEASUREMENT récupère la mesure d’énergie actuelle et l’heure à laquelle la mesure a été effectuée.
Mémoire tampon d'entrée
Aucun.
Longueur de la mémoire tampon d’entrée
Aucun.
Mémoire tampon de sortie
Le membre AssociatedIrp.SystemBuffer spécifie l’adresse d’une mémoire tampon allouée à l’appelant qui contient les données de mesure du pilote de périphérique du fournisseur.
Longueur de la mémoire tampon de sortie
La longueur de la mémoire tampon de sortie doit être la taille de EMI_MEASUREMENT_DATA_V1 ou EMI_MEASUREMENT_DATA_V2 multiplier par le nombre de canaux, elle est spécifiée dans le membre Parameters.DeviceIoControl.OutputBufferLength .
Remarques
Pour EMI version 1 et 2, les données de mesure EMI signalées à partir de chaque canal doivent être accumulées et traduites en l’unité spécifiée par le canal sur chaque demande, car l’interface EMI de n’importe quel appareil doit être partagée entre le système. Par conséquent, la fréquence d’échantillonnage et d’accumulation des compteurs dépend de la fréquence à laquelle chacune de ses demandes de consommateur et de l’implémentation du pilote.
Pour l’EMI version 2, plusieurs canaux sont exposés par le même appareil doivent être échantillonné à la fois sur chaque demande. Par conséquent, l’appelant doit utiliser ChannelCount dans le EMI_METADATA_V2 pour parcourir les canaux, par exemple :
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 10. |
En-tête | emi.h (inclure Emi.h) |
Voir aussi
EMI_METADATA_V2
EMI_MEASUREMENT_DATA_V2
Interface de mesure de l’énergie