Код элемента управления 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 [только классические приложения] |
Заголовок |
|