Я использую Функция WinUsb_WritePipe записать данные на USB-устройство.
Единственная проблема в том, что функция делает бесконечный цикл.
//bulkOutPipe is a pipeId set precedently
//ucBuffer is an unsigned char array
//uiBytesToWrite corresponds to the size of the array
//ulBytesWritten is a unsigned long to stock the bytes written
std::cout << "Started writing" << std::endl;
WinUsb_WritePipe(devInfo->winUsbHandle, devInfo->bulkOutPipe, ucBuffer, uiBytesToWrite, &ulBytesWritten, 0);
//never gets here
Эта функция используется для возврата ложного но теперь это ничего не возвращает.
Чтобы избежать бесконечного цикла, я бы рекомендовал всегда устанавливать тайм-аут для операций ввода-вывода, как это. Вы можете использовать Функции WinUSB для модификации политики канала.
Других решений пока нет …