Compartilhar via


código de controle IOCTL_BATTERY_QUERY_STATUS

Recupera o status atual da bateria.

Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.

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

Um identificador para a bateria da qual as informações devem ser retornadas. Para recuperar um identificador de dispositivo, chame a função CreateFile .

Dwiocontrolcode

O código de controle para a operação. Esse valor identifica a operação específica a ser executada e o tipo de dispositivo no qual executá-la. Use IOCTL_BATTERY_QUERY_STATUS para esta operação.

lpInBuffer

Um ponteiro para uma estrutura BATTERY_WAIT_STATUS .

nInBufferSize

O tamanho do buffer de entrada, em bytes.

Lpoutbuffer

Um ponteiro para uma estrutura BATTERY_STATUS .

nOutBufferSize

O tamanho do buffer de saída em bytes.

Lpbytesreturned

Um ponteiro para uma variável que recebe o tamanho dos dados retornados no buffer lpOutBuffer , em bytes.

Se o buffer de saída for muito pequeno para retornar dados, a chamada falhará, GetLastError retornará o código de erro ERROR_INSUFFICIENT_BUFFER e a contagem de bytes retornada será zero.

Se lpOverlapped for NULL (E/S não sobreposta), lpBytesReturned não poderá ser NULL.

Se lpOverlapped não for NULL (E/S sobreposta), lpBytesReturned poderá ser NULL. Se essa for uma operação sobreposta, você poderá recuperar o número de bytes retornados chamando a função GetOverlappedResult . Se hDevice estiver associado a uma porta de conclusão de E/S, você poderá obter o número de bytes retornados chamando a função GetQueuedCompletionStatus .

Lpoverlapped

Um ponteiro para uma estrutura OVERLAPPED .

Se hDevice foi aberto com o sinalizador FILE_FLAG_OVERLAPPED , lpOverlapped deverá apontar para uma estrutura OVERLAPPED válida. Nesse caso, DeviceIoControl é executado como uma operação sobreposta (assíncrona). Se o dispositivo foi aberto com o sinalizador FILE_FLAG_OVERLAPPED e lpOverlapped for NULL, a função falhará de maneiras imprevisíveis.

Se hDevice foi aberto sem especificar o sinalizador FILE_FLAG_OVERLAPPED , lpOverlapped será ignorado e a função DeviceIoControl não retornará até que a operação seja concluída ou até que ocorra um erro.

Valor retornado

Se a operação for concluída com êxito, DeviceIoControl retornará um valor diferente de zero.

Se a operação falhar ou estiver pendente, DeviceIoControl retornará zero. Para obter informações de erro estendidas, chame GetLastError.

Todas as solicitações de informações de bateria serão concluídas com o status de ERROR_NO_SUCH_DEVICE (ou ERROR_FILE_NOT_FOUND no Windows 10 versão 1809 e anterior) sempre que o elemento BatteryTag da solicitação não corresponder ao da marca de bateria atual. Isso garante que as informações de bateria retornadas correspondam à da bateria solicitada (consulte Marcas de bateria para obter mais informações).

Comentários

Essa bateria IOCTL recupera o status da bateria no momento em que a operação retorna. A estrutura do parâmetro de entrada, BATTERY_WAIT_STATUS, indica quando a bateria status deve ser processada e retornada.

As solicitações de status de bateria podem ser para retorno imediato ou podem ser definidas para aguardar uma condição específica antes de serem concluídas. Por exemplo, é possível fazer uma solicitação de informações sobre a bateria que aguarda até que a capacidade da bateria atinja um ponto especificado ou o estado da bateria seja alterado.

Todas as solicitações de informações de bateria serão concluídas com o status de ERROR_FILE_NOT_FOUND sempre que o elemento BatteryTag da solicitação não corresponder ao da marca de bateria atual. (Consulte Marcas de bateria para obter mais informações.) Isso é usado para garantir que as informações de bateria retornadas correspondam à da bateria solicitada.

Para obter as implicações de E/S sobrepostas nessa operação, consulte a seção Comentários do tópico DeviceIoControl .

Exemplos

Para obter um exemplo, consulte Enumerando dispositivos de bateria.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
Poclass.h;
BatClass.h no Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP

Confira também

Informações da bateria

Códigos de controle de gerenciamento de energia

Deviceiocontrol

BATTERY_STATUS

BATTERY_WAIT_STATUS

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_TAG

IOCTL_BATTERY_SET_INFORMATION