code de contrôle IOCTL_BATTERY_QUERY_STATUS
Récupère la status actuelle de la batterie.
Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to battery
IOCTL_BATTERY_QUERY_STATUS, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Paramètres
-
hDevice
-
Handle de la batterie à partir de laquelle les informations doivent être retournées. Pour récupérer un handle d’appareil, appelez la fonction CreateFile .
-
dwIoControlCode
-
Code de contrôle pour l’opération. Cette valeur identifie l’opération spécifique à effectuer et le type d’appareil sur lequel l’effectuer. Utilisez IOCTL_BATTERY_QUERY_STATUS pour cette opération.
-
lpInBuffer
-
Pointeur vers une structure BATTERY_WAIT_STATUS .
-
nInBufferSize
-
Taille de la mémoire tampon d’entrée, en octets.
-
lpOutBuffer
-
Pointeur vers une structure BATTERY_STATUS .
-
nOutBufferSize
-
Taille de la mémoire tampon de sortie en octets.
-
lpBytesReturned
-
Pointeur vers une variable qui reçoit la taille des données retournées dans la mémoire tampon lpOutBuffer , en octets.
Si la mémoire tampon de sortie est trop petite pour retourner des données, l’appel échoue, GetLastError retourne le code d’erreur ERROR_INSUFFICIENT_BUFFER et le nombre d’octets retourné est égal à zéro.
Si lpOverlapped a la valeur NULL (E/S nonoverlapped), lpBytesReturned ne peut pas être NULL.
Si lpOverlapped n’a pas la valeur NULL (E/S superposées), lpBytesReturned peut avoir la valeur NULL. S’il s’agit d’une opération qui se chevauche, vous pouvez récupérer le nombre d’octets retournés en appelant la fonction GetOverlappedResult . Si hDevice est associé à un port d’achèvement des E/S, vous pouvez obtenir le nombre d’octets retournés en appelant la fonction GetQueuedCompletionStatus .
-
lpOverlapped
-
Pointeur vers une structure CHEVAUCHEMENT .
Si hDevice a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED , lpOverlapped doit pointer vers une structure OVERLAPPED valide. Dans ce cas, DeviceIoControl est effectué en tant qu’opération superposée (asynchrone). Si l’appareil a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED et que lpOverlapped a la valeur NULL, la fonction échoue de manière imprévisible.
Si hDevice a été ouvert sans spécifier l’indicateur de FILE_FLAG_OVERLAPPED , lpOverlapped est ignoré et la fonction DeviceIoControl ne retourne pas tant que l’opération n’est pas terminée ou jusqu’à ce qu’une erreur se produise.
Valeur retournée
Si l’opération se termine correctement, DeviceIoControl retourne une valeur différente de zéro.
Si l’opération échoue ou est en attente, DeviceIoControl retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Toutes les demandes d’informations sur la batterie se terminent avec la status de ERROR_NO_SUCH_DEVICE (ou ERROR_FILE_NOT_FOUND dans Windows 10 version 1809 et antérieure) chaque fois que l’élément BatteryTag de la demande ne correspond pas à celui de la balise de batterie actuelle. Cela garantit que les informations sur la batterie retournées correspondent à celles de la batterie demandée (pour plus d’informations, consultez Étiquettes de batterie ).
Notes
Cette batterie IOCTL récupère le status de la batterie au moment du retour de l’opération. La structure de paramètre d’entrée, BATTERY_WAIT_STATUS, indique quand la batterie status doit être traitée et retournée.
Les demandes de status de batterie peuvent être renvoyées immédiatement ou peuvent être définies pour attendre une condition particulière avant de se terminer. Par exemple, une demande d’informations sur la batterie peut être effectuée qui attend que la capacité de la batterie atteigne un point spécifié ou que l’état de la batterie change.
Toutes les demandes d’informations sur la batterie se terminent avec la status de ERROR_FILE_NOT_FOUND chaque fois que l’élément BatteryTag de la demande ne correspond pas à celui de la balise de batterie actuelle. (Pour plus d’informations, consultez Étiquettes de batterie .) Cela permet de s’assurer que les informations de batterie retournées correspondent à celles de la batterie demandée.
Pour connaître les implications des E/S qui se chevauchent sur cette opération, consultez la section Remarques de la rubrique DeviceIoControl .
Exemples
Pour obtenir un exemple, consultez Énumération des appareils de batterie.
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 |
|