Compartir a través de


IOCTL_BATTERY_QUERY_STATUS código de control

Recupera el estado actual de la batería.

Para realizar esta operación, llame a la función DeviceIoControl con los parámetros siguientes.

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
);

Parámetros

hDevice

Un asa a la batería desde la que se va a devolver la información. Para recuperar un identificador de dispositivo, llame a la función CreateFile .

dwIoControlCode

Código de control para la operación. Este valor identifica la operación específica que se va a realizar y el tipo de dispositivo en el que se va a realizar. Use IOCTL_BATTERY_QUERY_STATUS para esta operación.

lpInBuffer

Puntero a una estructura de BATTERY_WAIT_STATUS .

nInBufferSize

Tamaño del búfer de entrada, en bytes.

lpOutBuffer

Puntero a una estructura de BATTERY_STATUS .

nOutBufferSize

Tamaño del búfer de salida, en bytes.

lpBytesReturned

Puntero a una variable que recibe el tamaño de los datos devueltos en el búfer lpOutBuffer , en bytes.

Si el búfer de salida es demasiado pequeño para devolver datos, se produce un error en la llamada, GetLastError devuelve el código de error ERROR_INSUFFICIENT_BUFFER y el recuento de bytes devuelto es cero.

Si lpOverlapped es NULL (E/S no superpuesta), lpBytesReturned no puede ser NULL.

Si lpOverlapped no es NULL (E/S superpuesta), lpBytesReturned puede ser NULL. Si se trata de una operación superpuesta, puede recuperar el número de bytes devueltos mediante una llamada a la función GetOverlappedResult . Si hDevice está asociado a un puerto de finalización de E/S, puede obtener el número de bytes devueltos llamando a la función GetQueuedCompletionStatus .

lpOverlapped

Puntero a una estructura SUPERPUESTA .

Si hDevice se abrió con la marca FILE_FLAG_OVERLAPPED , lpOverlapped debe apuntar a una estructura SUPERPUESTA válida. En este caso, DeviceIoControl se realiza como una operación superpuesta (asincrónica). Si el dispositivo se abrió con la marca FILE_FLAG_OVERLAPPED y lpOverlapped es NULL, la función produce un error de maneras impredecibles.

Si hDevice se abrió sin especificar la marca FILE_FLAG_OVERLAPPED , lpOverlapped se omite y la función DeviceIoControl no devuelve hasta que se haya completado la operación o hasta que se produzca un error.

Valor devuelto

Si la operación se completa correctamente, DeviceIoControl devuelve un valor distinto de cero.

Si se produce un error en la operación o está pendiente, DeviceIoControl devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Todas las solicitudes de información de batería se completarán con el estado de ERROR_NO_SUCH_DEVICE (o ERROR_FILE_NOT_FOUND en Windows 10 versión 1809 y anteriores) siempre que el elemento BatteryTag de la solicitud no coincida con el de la etiqueta de batería actual. Esto garantiza que la información de la batería devuelta coincida con la de la batería solicitada (consulte Etiquetas de batería para obtener más información).

Comentarios

Este IOCTL de batería recupera el estado de la batería en el momento en que la operación devuelve. La estructura de parámetros de entrada, BATTERY_WAIT_STATUS, indica cuándo se va a procesar y devolver el estado de la batería.

Las solicitudes de estado de la batería pueden ser de devolución inmediata o se pueden establecer para esperar una condición determinada antes de completarse. Por ejemplo, se puede realizar una solicitud de información de batería que espere hasta que la capacidad de la batería alcance un punto especificado o cambie el estado de la batería.

Todas las solicitudes de información de batería se completarán con el estado de ERROR_FILE_NOT_FOUND siempre que el elemento BatteryTag de la solicitud no coincida con el de la etiqueta de batería actual. (Consulte Etiquetas de batería para obtener más información). Esto se usa para asegurarse de que la información de la batería devuelta coincide con la de la batería solicitada.

Para conocer las implicaciones de la E/S superpuesta en esta operación, consulte la sección Comentarios del tema DeviceIoControl .

Ejemplos

Para obtener un ejemplo, vea Enumerar dispositivos de batería.

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

Información de la batería

Códigos de control de administración de energía

DeviceIoControl

BATTERY_STATUS

BATTERY_WAIT_STATUS

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_TAG

IOCTL_BATTERY_SET_INFORMATION