IOCTL_LAMP_GET_CAPABILITIES_WHITE IOCTL (lamp.h)

当设备配置为发出白光时,IOCTL_LAMP_GET_CAPABILITIES_WHITE 控制代码会查询灯的功能。

#define IOCTL_LAMP_GET_CAPABILITIES_WHITE \
    CTL_CODE(IOCTL_LAMP_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp->AssociatedIrp.SystemBuffer 指向 LAMP_CAPABILITIES_WHITE类型的缓冲区。

输入缓冲区长度

缓冲区的长度。

输出缓冲区

Irp->AssociatedIrp.SystemBuffer 充满了灯硬件支持的所有功能。

输出缓冲区长度

IO_STACK_LOCATION.Parameters.DeviceIoControl.OutputBufferLength 是在 Irp->AssociatedIrp.SystemBuffer 字段中传递的缓冲区的长度(以字节为单位)。

状态块

驱动程序将 Irp->IoStatus.Status 设置为 STATUS_SUCCESS 或相应的错误状态。 它将 Irp->IoStatus.Information 设置为保存缓冲区所需的字节数。

言论

根据要求,驱动程序支持 GUID_DEVINTERFACE_LAMP 接口的灯需要支持发出白光。

此 IOCTL 的有效负载是 LAMP_CAPABILITIES_WHITE 结构。

IsLightIntensityAdjustable 字段指示是否可以编程亮度级别。 如果此字段的计算结果为 FALSE,则表示基础设备仅支持开/关开关,并且无法调整光强度。

要求

要求 价值
标头 lamp.h