IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS控制代码
设置当前交流和 DC 背光级别。
若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of the input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
参数
-
hDevice
-
\\.\LCD 设备的句柄。 若要检索设备句柄,请调用 CreateFile 函数。
-
dwIoControlCode
-
操作的控制代码。 此值标识要执行的特定操作以及要执行该操作的设备类型。 对此操作使用 IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS 。
-
lpInBuffer
-
指向 DISPLAY_BRIGHTNESS 结构的指针。
-
nInBufferSize
-
lpOutBuffer 指向的缓冲区的大小(以字节为单位)。
-
lpOutBuffer
-
不与此操作一起使用;设置为 NULL。
-
nOutBufferSize
-
不与此操作一起使用;设置为零。
-
lpBytesReturned
-
指向变量的指针,该变量接收输出缓冲区中函数返回的实际字节计数。
如果 lpOverlapped (非重叠 I/O) 为 NULL , 则 lpBytesReturned 在内部使用,不能为 NULL。
如果 lpOverlapped 不为 NULL (重叠的 I/O) , 则 lpBytesReturned 可以为 NULL。
-
lpOverlapped
-
指向 OVERLAPPED 结构的指针。
如果使用 FILE_FLAG_OVERLAPPED 标志打开 hDevice , 则 lpOverlapped 必须指向有效的 OVERLAPPED 结构。 在这种情况下,该操作作为重叠 (异步) 操作执行。 如果使用 FILE_FLAG_OVERLAPPED 标志打开设备,并且 lpOverlapped 为 NULL,则该函数会以不可预知的方式失败。
如果在未指定FILE_FLAG_OVERLAPPED标志的情况下打开 hDevice ,则忽略 lpOverlapped ,并且 DeviceIoControl 在操作完成或发生错误之前不会返回。
返回值
如果操作成功完成, DeviceIoControl 将返回非零值。
如果操作失败或挂起, DeviceIoControl 返回零。 要获得更多的错误信息,请调用 GetLastError。
备注
DISPLAY_BRIGHTNESS 结构的 ucACBrightness 和 ucDCBrightness 成员中指定的值之前必须已由 IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS 返回。 例如,如果支持的值为 10、20、30、40、50、60、70、80、90 和 100,则使用值 33 将是一个错误。
用于生成包含此功能的应用程序 Ntddvdeo.h 的头文件包含在 Microsoft Windows 驱动程序开发工具包 (DDK) 中。 有关获取 DDK 的信息,请参阅 https://www.microsoft.com/whdc/devtools/ddk/default.mspx。
或者,可以定义此控制代码,如下所示:
#define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS \
CTL_CODE(FILE_DEVICE_VIDEO, 0x127, METHOD_BUFFERED, FILE_ANY_ACCESS)
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista、带 SP1 的 Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
标头 |
|