IOCTL_EMI_GET_MEASUREMENT IOCTL (emi.h)
Der IOCTL_EMI_GET_MEASUREMENT Steuercode ruft die aktuelle Energiemessung und den Zeitpunkt ab, zu dem die Messung durchgeführt wurde.
Eingabepuffer
Keine.
Eingabepufferlänge
Keine.
Ausgabepuffer
Das AssociatedIrp.SystemBuffer-Element gibt die Adresse eines vom Aufrufer zugewiesenen Puffers an, der die Messdaten des Anbietergerätetreibers enthält.
Länge des Ausgabepuffers
Die Länge des Ausgabepuffers sollte die Größe von EMI_MEASUREMENT_DATA_V1 oder EMI_MEASUREMENT_DATA_V2 multipliziert mit der Anzahl von Kanälen sein. Sie wird im Parameter.DeviceIoControl.OutputBufferLength-Element angegeben.
Hinweise
Bei EMI-Version 1 und 2 sollten die von jedem Kanal gemeldeten EMI-Messdaten kumuliert und in die vom Kanal bei jeder Anforderung angegebene Einheit übersetzt werden, da die EMI-Schnittstelle eines beliebigen Geräts im gesamten System gemeinsam genutzt werden sollte. Daher hängt es davon ab, wie oft die einzelnen Consumeranforderungen und auch die Treiberimplementierung der Indikatoren erfasst und kumuliert werden.
Für die EMI-Version 2 sollten mehrere Kanäle, die von demselben Gerät verfügbar gemacht werden, bei jeder Anforderung gleichzeitig stichprobeniert werden. Daher sollte der Aufrufer den ChannelCount im EMI_METADATA_V2 verwenden, um die Kanäle zu durchlaufen, z. B.:
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 10. |
Kopfzeile | emi.h (emi.h einschließen) |
Weitere Informationen
EMI_METADATA_V2
EMI_MEASUREMENT_DATA_V2
Energiemessungsschnittstelle