Compartir a través de


estructura de BATTERY_WAIT_STATUS

Contiene información sobre las condiciones en las que se va a recuperar el estado de la batería. El código de control IOCTL_BATTERY_QUERY_STATUS usa esta estructura.

Sintaxis

typedef struct _BATTERY_WAIT_STATUS {
  ULONG BatteryTag;
  ULONG Timeout;
  ULONG PowerState;
  ULONG LowCapacity;
  ULONG HighCapacity;
} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;

Miembros

BatteryTag

La etiqueta de batería actual para la batería. Solo se puede devolver la información de una batería que coincida con la etiqueta. Siempre que este valor no coincida con la etiqueta actual de la batería, la operación DeviceIoControl producirá un error con un código de error de ERROR_FILE_NOT_FOUND, lo que indica al autor de la llamada que la batería para la que tiene una etiqueta ya no está instalada El autor de la llamada puede optar por usar la operación de IOCTL_BATTERY_QUERY_TAG para determinar la etiqueta de la batería recién instalada, si existe. Además, si la solicitud está en curso cuando se quita la batería o cambia la etiqueta, la operación se anula con el estado de ERROR_FILE_NOT_FOUND. (Consulte Etiquetas de batería para obtener más información).

Tiempo de espera

El número de milisegundos que la solicitud esperará a la condición especificada por los miembros powerState, LowCapacity y HighCapacity antes de completarse. Un valor de -1 indica que la solicitud esperará indefinidamente para que se cumplan las condiciones. Un valor de cero indica que la información solicitada de la batería se devolverá inmediatamente, independientemente de las demás condiciones. Cualquier otro valor indica que la solicitud debe esperar ese período de tiempo o hasta que se cumpla alguna de las otras condiciones.

Si el equipo ha entrado en modo de suspensión, el reloj seguirá ejecutándose, pero agotar el recuento no reactivará el equipo. Si el recuento se agota cuando el equipo está activado y se cumplen otras condiciones, la llamada volverá inmediatamente al despertar.

PowerState

Cero, uno o varios de los siguientes bits de estado, que indican el estado de la batería. Es idéntico al miembro PowerState de la estructura BATTERY_STATUS .

Valor Significado
BATTERY_CHARGING
0x00000004
Indica que la batería está cargando actualmente.
BATTERY_CRITICAL
0x00000008
Indica que el error de la batería es inminente. Vea la sección Comentarios para obtener más información.
BATTERY_DISCHARGING
0x00000002
Indica que la batería está descargando actualmente.
BATTERY_POWER_ON_LINE
0x00000001
Indica que la batería tiene acceso a la alimentación de CA.

LowCapacity

La capacidad actual de la batería, en mWh (o relativa). Este valor es idéntico al miembro Capacity de la estructura BATTERY_STATUS .

HighCapacity

La capacidad actual de la batería, en mWh (o relativa). Este valor es idéntico al miembro Capacity de la estructura BATTERY_STATUS .

Comentarios

Las solicitudes de información de batería se posponen hasta que se produzca una de las siguientes acciones:

  • El tiempo de espera expira (suponiendo que el tiempo de espera no es -1).
  • El estado actual de la batería no coincide con PowerState.
  • La capacidad de la batería está por debajo de LowCapacity.
  • La capacidad de la batería está por encima de HighCapacity.
  • La etiqueta de batería cambia.

Cuando se cumple alguna de estas condiciones, los datos se recopilan y la operación devuelve. Esto permite a las aplicaciones supervisar la información típica de la batería dinámica sin sondear el dispositivo.

Antes de usar cualquiera de las dos condiciones de capacidad, asegúrese de que la batería las admite mediante el código de control IOCTL_BATTERY_QUERY_STATUS con un tiempo de espera de cero. Examine los resultados para determinar si se admite el miembro Capacity (es decir, no BATTERY_UNKNOWN_CAPACITY).

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Poclass.h;
Batclass.h en Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP

Consulte también

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG