Partager via


code de contrôle IOCTL_BATTERY_SET_INFORMATION

Définit diverses informations sur la batterie. La structure des paramètres d’entrée, BATTERY_SET_INFORMATION, indique quelles informations de status batterie doivent être définies.

Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.

BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to battery
  IOCTL_BATTERY_SET_INFORMATION, // dwIoControlCode
  (LPVOID) lpInBuffer,           // input buffer
  (DWORD) nInBufferSize,         // size of input buffer
  NULL,                          // lpOutBuffer
  0,                             // nOutBufferSize
  (LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

Paramètres

hDevice

Handle de la batterie sur laquelle les informations doivent être définies. 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_SET_INFORMATION pour cette opération.

lpInBuffer

Pointeur vers une structure BATTERY_SET_INFORMATION .

nInBufferSize

Taille de la mémoire tampon d’entrée, en octets.

lpOutBuffer

Non utilisé avec cette opération ; défini sur NULL.

nOutBufferSize

Non utilisé avec cette opération ; défini sur zéro.

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 renvoyer 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, même si lpOutBuffer a la valeur 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

Toutes les demandes de définition des informations sur la batterie se terminent avec la status de ERROR_FILE_NOT_FOUND si la balise de batterie de la demande ne correspond pas à celle de la balise de batterie actuelle.

Pour connaître les implications des E/S qui se chevauchent sur cette opération, consultez la section Remarques de la rubrique DeviceIoControl .

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

Informations sur la batterie

Codes de contrôle de gestion de l’alimentation

DeviceIoControl

BATTERY_SET_INFORMATION

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG