Eagle Eye Mini Camera Driver Windows 10 -

// Setup packet for vendor request setupPacket.bmRequest = BMREQUEST_VENDOR_DEVICE_OUT; setupPacket.bRequest = Command; setupPacket.wValue = (USHORT)(Value & 0xFFFF); setupPacket.wIndex = (USHORT)((Value >> 16) & 0xFFFF); setupPacket.wLength = 0;

// Get pipes for (i = 0; i < WdfUsbInterfaceGetNumPipes(deviceContext->UsbInterface); i++) WDF_USB_PIPE_INFO pipeInfo; WDF_USB_PIPE_INFO_INIT(&pipeInfo); status = WdfUsbInterfaceGetConfiguredPipe(deviceContext->UsbInterface, i, &pipeInfo); if (NT_SUCCESS(status)) // Check pipe type if (WdfUsbPipeTypeBulk == pipeInfo.PipeType) USBD_PIPE_INFORMATION pipeInfoUsb; WdfUsbTargetPipeGetInformation(pipeInfo.Pipe, &pipeInfoUsb); if (pipeInfoUsb.EndpointAddress & USB_ENDPOINT_DIRECTION_IN) deviceContext->BulkReadPipe = pipeInfo.Pipe; KdPrint(("Bulk IN pipe found\n")); else deviceContext->BulkWritePipe = pipeInfo.Pipe; KdPrint(("Bulk OUT pipe found\n")); else if (WdfUsbPipeTypeInterrupt == pipeInfo.PipeType) deviceContext->InterruptPipe = pipeInfo.Pipe; KdPrint(("Interrupt pipe found\n"));

// Send control transfer status = WdfUsbTargetDeviceSendControlTransferSynchronously( UsbDevice, WDF_NO_HANDLE, // Optional WDFREQUEST WDF_NO_HANDLE, // Optional send options &setupPacket, NULL, // Optional memory NULL, // Optional offset &bytesTransferred );

SetupDiDestroyDeviceInfoList(deviceInfoSet); return INVALID_HANDLE_VALUE; eagle eye mini camera driver windows 10

[EagleEyeMini.HW.AddReg] ; Enable custom properties HKR,,ExtensionDriver,,"EagleEyeMiniExt"

// Create default I/O queue WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig, WdfIoQueueDispatchSequential); queueConfig.EvtIoDeviceControl = EagleEyeEvtIoDeviceControl;

WDF_USB_CONTROL_SETUP_PACKET setupPacket; WDF_MEMORY memory; NTSTATUS status; ULONG bytesTransferred; // Setup packet for vendor request setupPacket

// Set device type as exclusive (camera) WdfDeviceInitSetDeviceType(DeviceInit, FILE_DEVICE_VIDEO);

status = WdfUsbTargetDeviceCreateWithParameters(Device, &usbConfig, WDF_NO_OBJECT_ATTRIBUTES, &deviceContext->UsbDevice); if (!NT_SUCCESS(status)) KdPrint(("WdfUsbTargetDeviceCreateWithParameters failed: 0x%x\n", status)); return status;

SP_DEVICE_INTERFACE_DATA interfaceData; interfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); setupPacket.bRequest = Command

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(DEVICE_CONTEXT, DeviceGetContext)

INCLUDES=$(INCLUDES);.

// Initialize device attributes with context WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&deviceAttributes, DEVICE_CONTEXT);

// Get buffers if (InputBufferLength > 0) status = WdfRequestRetrieveInputBuffer(Request, InputBufferLength, &inputBuffer, NULL); if (!NT_SUCCESS(status)) WdfRequestComplete(Request, status); return;

status = WdfIoQueueCreate(device, &queueConfig, WDF_NO_OBJECT_ATTRIBUTES, WDF_NO_HANDLE); if (!NT_SUCCESS(status)) KdPrint(("WdfIoQueueCreate failed: 0x%x\n", status)); return status;