Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab Windows 10 können Treiber die Energiemessungsschnittstelle (ENERGY Metering Interface, EMI) implementieren, um Daten zum Energieverbrauch für Clients verfügbar zu machen. Diese Schnittstelle besteht aus einer Reihe standardisierter IOCTLs, die es Clients ermöglichen, Energiedaten sowie Informationen über die Messhardware und die gemessene Hardware zu erhalten.
On-Board-Energiezähler messen regelmäßig Spannung und Strom auf einer Schiene, berechnen ein Energieprodukt und integrieren die gesamt verbrauchte Energie im Laufe der Zeit. Diese Zähler unterscheiden sich vom vorhandenen Power Meter Interface-Konzept , da Stromzähler ein globales Durchschnittliches Intervall aufweisen. Energiezähler ermöglichen es mehreren Verbrauchern, die durchschnittliche Leistung in unterschiedlichen Intervallen nach ihren Bedürfnissen zu ermitteln, indem der Gesamtenergieverbrauch bis zur Gegenwart zurückgegeben wird.
Die EMI-Schnittstelle bietet den Anschluss für Energiedaten, die von interessierten Clientanwendungen und -diensten genutzt werden sollen. Kunden berechnen Energie, die seit ihrer letzten Abfrage verbraucht werden, indem sie die vorherigen Werte von den neuesten Werten subtrahieren und optional in die durchschnittliche Leistung nach einfacher Division konvertieren.
Ermitteln von Geräten, die EMI implementieren
Clients entdecken Geräte, die das EMI über Aufrufe von SetupDiEnumDeviceInterfaces und SetupDiGetDeviceInterfaceDetail unterstützen. Eine Instanz einer EMI-Geräteschnittstelle wird für jedes Energiemessungsgerät erstellt, das EMI-konform ist und im System vorhanden ist.
Die GUID für die EMI-Geräteschnittstelle lautet {45BD8344-7ED6-49cf-A440-C276C933B053}, wie in emi.h definiert. Code kann alternativ GUID_DEVICE_ENERGY_METER verwenden, um diese GUID anzugeben.
Verwenden der EMI-Schnittstelle
Clientcode interagiert in der Regel mit dem EMI mithilfe des folgenden Prozesses:
Rufen Sie IOCTL_EMI_GET_VERSION auf , und überprüfen Sie die EMI-Schnittstellenversion, die vom Gerät im zurückgegebenen EMI_VERSION Wert unterstützt wird. In Windows 10 können Geräte EMI_VERSION_V1 unterstützen. In Windows 10, Version 1809, können Geräte auch EMI_VERSION_V2 unterstützen. Zukünftige Betriebssystemversionen können spätere Versionen einführen.
Rufen Sie IOCTL_EMI_GET_METADATA_SIZE auf, um die Größe der EMI-Metadaten abzurufen.
Weisen Sie einen Puffer der erforderlichen EMI-Metadatengröße zu, und rufen Sie IOCTL_EMI_GET_METADATA auf. Stellen Sie sicher, dass die zurückgegebene EMI_MEASUREMENT_UNIT emiMeasurementUnitPicowattHours ist. Versionen nach Windows 10 können zusätzliche Einheitentypen definieren.
Rufen Sie IOCTL_EMI_GET_MEASUREMENT auf, um den gesamten Energieverbrauch zu messen. Der Absolute Energy-Wert in der zurückgegebenen EMI_CHANNEL_MEASUREMENT_DATA Struktur ist die gesamt akkumulierte Energie in Picwattstunden mit einem beliebigen Nullpunkt. Im Allgemeinen müssen Sie Proben zu zwei verschiedenen Zeiten vergleichen und die Energiewerte für den Energieverbrauch über dieses Intervall subtrahieren.
Um den durchschnittlichen Stromverbrauch zu messen, rufen Sie IOCTL_EMI_GET_MEASUREMENT am Anfang und Ende des gewünschten Intervalls auf. Subtrahieren Sie die AbsoluteEnergie- und AbsoluteTime-Werte der EMI_CHANNEL_MEASUREMENT_DATA Struktur, die von der späteren Stichprobe von denen der früheren Stichprobe zurückgegeben werden.
Weitere Informationen finden Sie in diesen Themen.
EMI IOCTLs – In diesem Abschnitt werden die I/O-Kontrollcodes (IOCTLs) beschrieben, die von der Energiemessschnittstelle (EMI) unterstützt werden.
EMI Enumerationen und Strukturen – In diesem Abschnitt werden die Enumerationen und Strukturen beschrieben, die von der Energiemessungsschnittstelle (EMI) unterstützt werden.