Compartir a través de


IOCTL_BATTERY_SET_INFORMATION código de control

Establece la información de varias baterías. La estructura de parámetros de entrada, BATTERY_SET_INFORMATION, indica qué información de estado de batería se va a establecer.

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

Parámetros

hDevice

Identificador de la batería en la que se va a establecer la información. Para recuperar un identificador de dispositivo, llame a la función CreateFile .

dwIoControlCode

Código de control de 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_SET_INFORMATION para esta operación.

lpInBuffer

Puntero a una estructura de BATTERY_SET_INFORMATION .

nInBufferSize

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

lpOutBuffer

No se usa con esta operación; se establece en NULL.

nOutBufferSize

No se usa con esta operación; se establece en cero.

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, incluso si lpOutBuffer es 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 llamando 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 de FILE_FLAG_OVERLAPPED y lpOverlapped es NULL, la función produce un error de maneras impredecibles.

Si hDevice se abrió sin especificar la marca de 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

Todas las solicitudes para establecer la información de la batería se completarán con el estado de ERROR_FILE_NOT_FOUND si la etiqueta de batería de la solicitud no coincide con la de la etiqueta de batería actual.

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

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_SET_INFORMATION

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG