There are servral USB libraries out there. I have tried libusb and it won't work for me. I cannot connect my USB device with that library because my driver for that USB device is using usbser.sys driver. My USB device is a Communication Device Class (CDC).
The only USB library that works for me is QtSerialPort (I have not tested Win32 API yet) and now to the question: If QtSerialPort only works for my USB device, what API does QtSerialPort use then? Does QtSerialPort use internal Win32 API functions, or own internal API?
On Windows, QtSerialPort uses the Windows API to communicate with serial ports (CreateFile, WriteFile, ReadFile, SetCommTimeouts, etc.).
You can read the relevant source code here:
https://github.com/qt/qtserialport/blob/dev/src/serialport/qserialport_win.cpp