Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A partir de Windows 10, los conductores pueden implementar la Interfaz de medición de energía (EMI) para exponer los datos de consumo de energía a los clientes. Esta interfaz consta de un conjunto de ICTLs estandarizados para que los clientes obtengan datos de energía, así como datos sobre el hardware de medición y el hardware que se mide.
Los medidores de energía a bordo miden periódicamente el voltaje y la corriente en un raíl, calculan un producto de energía e integran la energía total consumida con el tiempo. Estos medidores son distintos del concepto de interfaz de medidor de energía existente porque los medidores de energía tienen un intervalo de promedio global. Los medidores de energía permiten a varios consumidores determinar la potencia media en intervalos diferentes según sus necesidades devolviendo el consumo total de energía hasta el presente.
La interfaz EMI proporciona el conducto para que los datos de energía los consuman las aplicaciones y servicios cliente interesados. Los clientes calculan la energía consumida desde su última consulta restando los valores anteriores de los valores más recientes y, opcionalmente, convierten a potencia media por división simple.
Detección de dispositivos que implementan EMI
Los clientes detectan dispositivos que admiten el EMI mediante llamadas a SetupDiEnumDeviceInterfaces y SetupDiGetDeviceInterfaceDetail. Se crea una instancia de una interfaz de dispositivo EMI para cada dispositivo de medición de energía compatible con EMI y que está presente en el sistema.
El GUID de la interfaz del dispositivo EMI es {45BD8344-7ED6-49cf-A440-C276C933B053}, tal y como se define en emi.h. El código también puede usar GUID_DEVICE_ENERGY_METER para especificar este GUID.
Uso de la interfaz EMI
Normalmente, el código de cliente interactúa con el EMI mediante el siguiente proceso:
Llame a IOCTL_EMI_GET_VERSION y compruebe la versión de la interfaz EMI compatible con el dispositivo en el valor devuelto EMI_VERSION . En Windows 10, los dispositivos pueden admitir EMI_VERSION_V1. En Windows 10 versión 1809, los dispositivos también pueden admitir EMI_VERSION_V2. Las versiones futuras del sistema operativo pueden introducir versiones posteriores.
Llame a IOCTL_EMI_GET_METADATA_SIZE para obtener el tamaño de los metadatos de EMI.
Asigne un búfer del tamaño de metadatos EMI necesario y llame a IOCTL_EMI_GET_METADATA. Compruebe que el EMI_MEASUREMENT_UNIT devuelto es EmiMeasurementUnitPicowattHours. Las versiones después de Windows 10 pueden definir tipos de unidad adicionales.
Para medir el consumo total de energía, llame a IOCTL_EMI_GET_MEASUREMENT. El valor AbsoluteEnergy en la estructura de EMI_CHANNEL_MEASUREMENT_DATA devuelta es la energía acumulada total en picowatt-hours con algún punto cero arbitrario. En general, debe comparar muestras en dos veces diferentes y restar los valores de energía para el consumo de energía durante ese intervalo.
Para medir el consumo medio de energía, llame a IOCTL_EMI_GET_MEASUREMENT al principio y al final del intervalo deseado. Resta los valores AbsoluteEnergy y AbsoluteTime de la estructura EMI_CHANNEL_MEASUREMENT_DATA devuelta por la última muestra de las del ejemplo anterior.
Para obtener más información, consulte estos temas.
EMI IOCTLs : en esta sección se describen los códigos de control de E/S (IOCTL) que son compatibles con la interfaz de medición energética (EMI).
Enumeraciones y estructuras EMI : en esta sección se describen las enumeraciones y estructuras admitidas por la Interfaz de medición energética (EMI).