如果灯处于打开状态,IOCTL_LAMP_GET_EMITTING_LIGHT 控制代码查询。
#define IOCTL_LAMP_GET_EMITTING_LIGHT \
CTL_CODE(IOCTL_LAMP_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 指向布尔值 类型的缓冲区。
输入缓冲区长度
布尔 的长度。
输出缓冲区
Irp->AssociatedIrp.SystemBuffer 包含灯状态;如果灯打开并发出光,则 TRUE;否则,FALSE。
输出缓冲区长度
IO_STACK_LOCATION.Parameters.DeviceIoControl.OutputBufferLength 是在 Irp->AssociatedIrp.SystemBuffer 字段中传递的缓冲区长度(以字节为单位)。
状态块
驱动程序将 Irp->IoStatus.Status 设置为 STATUS_SUCCESS 或相应的错误状态。 它将 Irp->IoStatus.Information 设置为保存 DWORD 值所需的字节数。
如果设备已被相机驱动程序获取,灯驱动程序应通过 Irp->IoStatus.Status返回 STATUS_RESOURCE_IN_USE 错误。
要求
| 要求 | 价值 |
|---|---|
| 标头 | lamp.h |