共用方式為


IOCTL_LAMP_GET_EMITTING_LIGHT IOCTL (lamp.h)

如果燈燈已開啟 ,IOCTL_LAMP_GET_EMITTING_LIGHT 控制程式代碼查詢。

#define IOCTL_LAMP_GET_EMITTING_LIGHT \
    CTL_CODE(IOCTL_LAMP_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

Irp->AssociatedIrp.SystemBuffer 指向 BOOLEAN 類型的緩衝區。

輸入緩衝區長度

BOOLEAN 的長度。

輸出緩衝區

Irp->AssociatedIrp.SystemBuffer 包含燈光狀態;如果燈已開啟併發出光線,則為 TRUE ; 否則為 FALSE

輸出緩衝區長度

IO_STACK_LOCATION.Parameters.DeviceIoControl.OutputBufferLength 是欄位段中傳入 Irp->AssociatedIrp.SystemBuffer 位元組的緩衝區長度。

狀態區塊

驅動程式會設定 Irp->IoStatus.StatusSTATUS_SUCCESS 或適當的錯誤狀態。 它會設定 Irp->IoStatus.Information 為保留 DWORD 值所需的位元元組數目。

如果相機驅動程式已取得裝置,燈光驅動程式應該透過 Irp->IoStatus.Status傳回STATUS_RESOURCE_IN_USE錯誤。

規格需求

需求
標頭 lamp.h