Поделиться через


Код элемента управления IOCTL_BATTERY_SET_INFORMATION

Задает различные сведения об батарее. Структура входных параметров , BATTERY_SET_INFORMATION, указывает, какие сведения о состоянии батареи необходимо задать.

Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.

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

Параметры

hDevice

Дескриптор батареи, в которой должны быть заданы сведения. Чтобы получить дескриптор устройства, вызовите функцию CreateFile .

dwIoControlCode

Код элемента управления для операции. Это значение определяет конкретную операцию, которую необходимо выполнить, и тип устройства, на котором она выполняется. Используйте IOCTL_BATTERY_SET_INFORMATION для этой операции.

lpInBuffer

Указатель на структуру BATTERY_SET_INFORMATION .

nInBufferSize

Размер входного буфера в байтах.

lpOutBuffer

Не используется с этой операцией; для параметра задано значение NULL.

nOutBufferSize

Не используется с этой операцией; Значение равно нулю.

lpBytesReturned

Указатель на переменную, которая получает размер данных, возвращаемых в буфере lpOutBuffer , в байтах.

Если выходной буфер слишком мал для возврата каких-либо данных, вызов завершается ошибкой, GetLastError возвращает код ошибки ERROR_INSUFFICIENT_BUFFER, а возвращенное число байтов равно нулю.

Если lpOverlapped имеет значение NULL (неперекрытый ввод-вывод), lpBytesReturned не может иметь значение NULL, даже если lpOutBuffer имеет значение NULL.

Если значение lpOverlapped не равно NULL (перекрывающееся ввод-вывод), lpBytesReturned может иметь значение NULL. Если это перекрываемая операция, можно получить количество возвращаемых байтов, вызвав функцию GetOverlappedResult . Если hDevice связан с портом завершения ввода-вывода, вы можете получить количество возвращаемых байтов, вызвав функцию GetQueuedCompletionStatus .

lpOverlapped

Указатель на структуру OVERLAPPED .

Если hDevice был открыт с флагом FILE_FLAG_OVERLAPPED, lpOverlapped должен указывать на допустимую структуру OVERLAPPED . В этом случае DeviceIoControl выполняется как перекрываемая (асинхронная) операция. Если устройство было открыто с флагом FILE_FLAG_OVERLAPPED, а lpOverlapped имеет значение NULL, функция завершается сбоем непредсказуемым образом.

Если hDevice был открыт без указания флага FILE_FLAG_OVERLAPPED, lpOverlapped игнорируется, а функция DeviceIoControl не возвращается до завершения операции или до возникновения ошибки.

Возвращаемое значение

Если операция завершается успешно, DeviceIoControl возвращает ненулевое значение.

Если операция завершается сбоем или находится в состоянии ожидания, DeviceIoControl возвращает ноль. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Все запросы сведений об батарее будут завершаться состоянием ERROR_NO_SUCH_DEVICE (или ERROR_FILE_NOT_FOUND в Windows 10 версии 1809 и более ранних версиях), если элемент BatteryTag запроса не совпадает с текущим тегом батареи. Это гарантирует, что возвращенная информация о батарее совпадает с информацией о запрошенной батарее (дополнительные сведения см. в разделе Теги батареи ).

Комментарии

Все запросы на настройку сведений о батарее завершатся состоянием ERROR_FILE_NOT_FOUND, если тег батареи запроса не совпадает с тегом текущего аккумулятора.

Сведения о последствиях перекрывающихся операций ввода-вывода для этой операции см. в разделе Примечания статьи DeviceIoControl .

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Poclass.h;
Batclass.h в Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP

См. также раздел

Сведения об батарее

Коды управления питанием

DeviceIoControl

BATTERY_SET_INFORMATION

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG