Communicating with PTP/USB (MTP)

For the past few months I’ve made a few attempts to communicate with my PTP cameras with Windows, and I haven’t gotten very far.

  • I was able to successfully use WIA, but Wia scans the entire SD card and builds a tree of file handles before I can do anything. This takes around 5 minutes, so I had to abandon the code.
  • I have working SetupAPI code that finds my camera with GUID {6bdd1fc6-810f-11d0-bec7-08002be2092f}
  • With that code, I tried DeviceIoControl, but I get Error 1 (ERROR_INVALID_FUNCTION) when trying to get the interface descriptor
  • I also tried WinUsb_Initialize with my SetupAPI code, and it also returned Error 1
  • My goal is to get PTP working like I have on Linux, and cross compile from Linux. I haven’t tried everything, as I’m mostly working on what I can find in the MinGW headers.
  • I apologize if I’m ignorant, I do mostly embedded programming on Linux.