Partager via


BATTERY_WAIT_STATUS structure

Contient des informations sur les conditions dans lesquelles la batterie status doit être récupérée. Cette structure est utilisée par le code de contrôle IOCTL_BATTERY_QUERY_STATUS .

Syntaxe

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

Membres

BatteryTag

Étiquette de batterie actuelle pour la batterie. Seules les informations relatives à une batterie correspondant à l’étiquette peuvent être retournées. Chaque fois que cette valeur ne correspond pas à la balise actuelle de la batterie, l’opération DeviceIoControl échoue avec un code d’erreur ERROR_FILE_NOT_FOUND, qui indique à l’appelant que la batterie pour laquelle il a une balise n’est plus installée. L’appelant peut choisir d’utiliser l’opération IOCTL_BATTERY_QUERY_TAG pour déterminer la balise de la batterie nouvellement installée, le cas échéant. En outre, si la demande est en cours lorsque la batterie est supprimée ou que la balise change, l’opération est abandonnée avec la status de ERROR_FILE_NOT_FOUND. (Pour plus d’informations, consultez Étiquettes de batterie .)

Délai d'expiration

Nombre de millisecondes pendant lesquelles la demande attend la condition spécifiée par les membres PowerState, LowCapacity et HighCapacity avant de terminer. La valeur -1 indique que la demande attendra indéfiniment que les conditions soient remplies. La valeur zéro indique que les informations de batterie demandées doivent être retournées immédiatement, quelles que soient les autres conditions. Toute autre valeur indique que la demande doit attendre cette durée, ou jusqu’à ce que l’une des autres conditions soit remplie.

Si l’ordinateur est entré en mode veille, l’horloge continue de s’exécuter, mais l’épuisement du nombre ne réveille pas l’ordinateur. Si le décompte est épuisé lorsque l’ordinateur est réveillé et que d’autres conditions sont remplies, l’appel revient immédiatement au réveil.

PowerState

Zéro, un ou plusieurs des bits status suivants, qui indiquent l’état de la batterie. Il est identique au membre PowerState de la structure BATTERY_STATUS .

Valeur Signification
BATTERY_CHARGING
0x00000004
Indique que la batterie est en cours de chargement.
BATTERY_CRITICAL
0x00000008
Indique que la défaillance de la batterie est imminente. Pour plus d'informations, consultez la section Notes.
BATTERY_DISCHARGING
0x00000002
Indique que la batterie est en cours de décharge.
BATTERY_POWER_ON_LINE
0x00000001
Indique que la batterie a accès à l’alimentation secteur.

Faible capacité

Capacité actuelle de la batterie, en mWh (ou relative). Cette valeur est identique au membre Capacity de la structure BATTERY_STATUS .

HighCapacity

Capacité actuelle de la batterie, en mWh (ou relative). Cette valeur est identique au membre Capacity de la structure BATTERY_STATUS .

Notes

Les demandes d’informations sur la batterie sont reportées jusqu’à ce que l’une des opérations suivantes se produise :

  • Le délai d’expiration expire (en supposant que le délai d’expiration n’est pas -1).
  • Le status actuel de la batterie ne correspond pas à PowerState.
  • La capacité de la batterie est inférieure à LowCapacity.
  • La capacité de la batterie est supérieure à HighCapacity.
  • La balise de batterie change.

Lorsque l’une de ces conditions est remplie, les données sont collectées et l’opération est retournée. Cela permet aux applications de surveiller les informations de batterie dynamiques classiques sans interroger l’appareil.

Avant d’utiliser l’une des deux conditions de capacité, assurez-vous que la batterie les prend en charge en utilisant le code de contrôle IOCTL_BATTERY_QUERY_STATUS avec un délai d’expiration de zéro. Examinez les résultats pour déterminer si le membre Capacity est pris en charge (c’est-à-dire, pas BATTERY_UNKNOWN_CAPACITY).

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
En-tête
Poclass.h;
Batclass.h sur Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP

Voir aussi

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG