Eagle Eye - Mini Camera Driver Windows 10

[Strings] ManufacturerName="Your Company" EagleEyeMini.DeviceDesc="Eagle Eye Mini Camera" 2. Driver Entry Point (Driver.c) #include <ntddk.h> #include <wdf.h> #include <usb.h> #include <usbdlib.h> DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD EagleEyeEvtDeviceAdd; EVT_WDF_DEVICE_PREPARE_HARDWARE EagleEyeEvtDevicePrepareHardware; EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL EagleEyeEvtIoDeviceControl;

[EagleEyeMini.HW.AddReg] ; Enable custom properties HKR,,ExtensionDriver,,"EagleEyeMiniExt" eagle eye mini camera driver windows 10

case IOCTL_CAMERA_SET_FOCUS: if (InputBufferLength < sizeof(ULONG)) status = STATUS_INVALID_PARAMETER; break; ULONG focusValue = *(PULONG)inputBuffer; KdPrint(("Setting focus: %d\n", focusValue)); status = SendVendorCommand(deviceContext->UsbDevice, 0x02, focusValue); break; [Strings] ManufacturerName="Your Company" EagleEyeMini

// Get camera status CAMERA_STATUS status; if (DeviceIoControl(hCamera, IOCTL_CAMERA_GET_STATUS, NULL, 0, &status, sizeof(status), &bytesReturned, NULL)) printf("Camera Status - Zoom: %d, Focus: %d, Exposure: %d, Streaming: %s\n", status.Zoom, status.Focus, status.Exposure, status.IsStreaming ? "Yes" : "No"); Enable custom properties HKR

// Device context structure typedef struct _DEVICE_CONTEXT WDFUSBDEVICE UsbDevice; WDFUSBINTERFACE UsbInterface; WDFUSBPIPE BulkReadPipe; WDFUSBPIPE BulkWritePipe; WDFUSBPIPE InterruptPipe; ULONG VendorID; ULONG ProductID; DEVICE_CONTEXT, *PDEVICE_CONTEXT;

WDFDEVICE device; WDF_IO_QUEUE_CONFIG queueConfig; WDF_OBJECT_ATTRIBUTES deviceAttributes; PDEVICE_CONTEXT deviceContext; NTSTATUS status; UNREFERENCED_PARAMETER(Driver);

case IOCTL_CAMERA_GET_STATUS: if (OutputBufferLength < sizeof(CAMERA_STATUS)) status = STATUS_BUFFER_TOO_SMALL; break; PCAMERA_STATUS pStatus = (PCAMERA_STATUS)outputBuffer; status = GetCameraStatus(deviceContext->UsbDevice, pStatus); if (NT_SUCCESS(status)) bytesReturned = sizeof(CAMERA_STATUS); break;