Jump to content

Brom Mode Mtk Driver • Premium

[COMAddReg] HKR,, "UpperFilters", 0x00010000, "mtk_usb_filter"

// Write is symmetric — sends DA command (0xE8 handshake) Once driver is installed, you can use libusb or CreateFile on COM port:

[USB_Install] Include = machine.inf Needs = COMPORT.NT AddService = mtk_brom, 0x00000002, Service_Inst brom mode mtk driver

NTSTATUS BROM_EvtDeviceAdd(WDFDEVICE Device) WDF_IO_QUEUE_CONFIG queueConfig; PDEVICE_EXTENSION devExt; WDF_OBJECT_ATTRIBUTES attributes; WDF_USB_DEVICE_CREATE_CONFIG usbConfig; NTSTATUS status;

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig, WdfIoQueueDispatchSequential); queueConfig.EvtIoRead = BROM_EvtIoRead; queueConfig.EvtIoWrite = BROM_EvtIoWrite; return WdfIoQueueCreate(Device, &queueConfig, WDF_NO_OBJECT_ATTRIBUTES, &devExt->Queue); queueConfig.EvtIoRead = BROM_EvtIoRead

VOID BROM_EvtIoRead(WDFQUEUE Queue, WDFREQUEST Request, size_t Length) PDEVICE_EXTENSION devExt = GetDeviceExtension(WdfIoQueueGetDevice(Queue)); WDF_USB_CONTROL_SETUP_PACKET setupPacket; WDF_MEMORY_DESCRIPTOR memDesc; ULONG bytesTransferred; NTSTATUS status;

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) WDF_DRIVER_CONFIG config; WDF_DRIVER_CONFIG_INIT(&config, BROM_EvtDeviceAdd); return WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE); queueConfig.EvtIoWrite = BROM_EvtIoWrite

WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, DEVICE_EXTENSION); status = WdfDeviceCreate(&Device, &attributes, &Device); if (!NT_SUCCESS(status)) return status;

×
×
  • Create New...