// Write is symmetric — sends DA command (0xE8 handshake) Once driver is installed, you can use libusb or CreateFile on COM port:
#include <ntddk.h> #include <wdf.h> #include <usb.h> DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD BROM_EvtDeviceAdd; EVT_WDF_IO_QUEUE_IO_READ BROM_EvtIoRead; EVT_WDF_IO_QUEUE_IO_WRITE BROM_EvtIoWrite; brom mode mtk driver
[USB_Install] Include = machine.inf Needs = COMPORT.NT AddService = mtk_brom, 0x00000002, Service_Inst // Write is symmetric — sends DA command
WdfRequestCompleteWithInformation(Request, status, bytesTransferred); brom mode mtk driver
[USB_Install.Services] Include = machine.inf Needs = COMPORT.NT.Services
WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(&setupPacket, 0x01, 0, 0, Length, TRUE); WdfRequestRetrieveOutputMemory(Request, &memDesc);