код элемента управления IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS
Извлекает поддерживаемые уровни подсветки.
Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Параметры
-
hDevice
-
Дескриптор для устройства \\.\LCD. Чтобы получить дескриптор устройства, вызовите функцию CreateFile .
-
dwIoControlCode
-
Код элемента управления для операции. Это значение определяет конкретную операцию, которую необходимо выполнить, и тип устройства, на котором она выполняется. Для этой операции используйте IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS .
-
lpInBuffer
-
Не используется с этой операцией; задайте значение NULL.
-
nInBufferSize
-
Не используется с этой операцией; Значение равно нулю.
-
lpOutBuffer
-
Указатель на буфер, получающий массив доступных уровней питания. Длина этого буфера должна составлять 256 байт.
-
nOutBufferSize
-
Размер выходного буфера в байтах.
-
lpBytesReturned
-
Указатель на переменную, которая получает размер возвращаемых выходных данных (в байтах).
Если выходной буфер слишком мал для возврата каких-либо данных, вызов завершается ошибкой. GetLastError возвращает код ошибки ERROR_INSUFFICIENT_BUFFER, а возвращенное число байтов равно нулю.
Если буфер вывода слишком мал для хранения всех данных, но может содержать некоторые записи, операционная система возвращает столько, сколько подходит, вызов завершается ошибкой, GetLastError возвращает код ошибки ERROR_MORE_DATA, а lpBytesReturned указывает объем возвращенных данных. Приложение должно снова вызвать DeviceIoControl с той же операцией, указав новую начальную точку.
Если lpOverlapped имеет значение NULL (неперекрытый ввод-вывод), lpBytesReturned не может иметь значение NULL.
Если значение lpOverlapped не равно NULL (перекрывающееся ввод-вывод), lpBytesReturned может иметь значение NULL. Если эта операция перекрывается, можно получить количество возвращаемых байтов, вызвав функцию GetOverlappedResult . Если hDevice связан с портом завершения ввода-вывода, можно получить количество возвращаемых байтов, вызвав функцию GetQueuedCompletionStatus .
-
lpOverlapped
-
Указатель на структуру OVERLAPPED .
Если hDevice был открыт с флагом FILE_FLAG_OVERLAPPED, lpOverlapped должен указывать на допустимую структуру OVERLAPPED . В этом случае операция выполняется как перекрываемая (асинхронная) операция. Если устройство было открыто с флагом FILE_FLAG_OVERLAPPED и lpOverlapped имеет значение NULL, функция завершается непредсказуемым сбоем.
Если hDevice был открыт без указания флага FILE_FLAG_OVERLAPPED, параметр lpOverlapped игнорируется, а DeviceIoControl не возвращается до завершения операции или до возникновения ошибки.
Возвращаемое значение
Если операция завершается успешно, DeviceIoControl возвращает ненулевое значение.
Если операция завершается сбоем или находится в состоянии ожидания, DeviceIoControl возвращает ноль. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Каждый элемент в массиве lpOutBuffer имеет длину в один байт. Поэтому при возврате параметр lpBytesReturned указывает количество поддерживаемых уровней. Каждый уровень имеет значение от 0 до 100. Чем больше значение, тем ярче подсветка. Поддерживаются все уровни, независимо от того, является ли источник питания переменным или dc.
Файл заголовка, используемый для создания приложений, включающих эту функцию, Ntddvdeo.h, входит в пакет средств разработки драйверов Microsoft Windows (DDK). Сведения о получении DDK см. в разделе https://www.microsoft.com/whdc/devtools/ddk/default.mspx.
Кроме того, этот код элемента управления можно определить следующим образом:
#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \
CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS)
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista, Windows XP с пакетом обновления 1 (SP1) [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Заголовок |
|