I found your question while looking for something very similar: how to talk with MTP (a Garmin Alpha 200i handheld GPS unit - not a phone) using Python 3 on Windows 10.
Glad to see you found a solution! I found a partial solution for my issue using your leads (Specifically, mtpmount), and am wondering if it provides another alternate solution for your issue.
I'm also wondering if you've discovered any more about mtpmount since you found your solution.
Based on your lead, I went to the mtpmount link. I was able to get a full solution for the windows command line by 1) downloading and running the latest .msi for dokany, making sure to select all the components for installation, then 2) downloading the latest .exe (it's not an installer - it's the actual mtpmount executable) for mtpmount. That's about as smooth of an installation process as one could hope for in this realm! Hats off to the developers on both of those projects!
The only differences vs the mtpmount docs I found were that 1) the executable name in the docs didn't exactly match the executable name from the downloads - certainly not a big deal, and 2) the pound sign has to be in double quotes - at least that was the case in powershell, and 3) a good thing: you can specify the drive letter in the same ID# syntax:
PS C:\Users\caver\Downloads> .\mtpmount-x64.exe list available
This is mtpmount, version 19.8.0 from commit 43033d6
This program comes with NO WARRANTY. Usage only at your own risk.
Available Connections and Storage Media:
Connection Elements: Contains 1 storages that can be mounted
|-- Storage E: [ID #0]
Connection My Passport: Contains 1 storages that can be mounted
|-- Storage F: [ID #1]
Connection Alpha 200i: Contains 2 storages that can be mounted
|-- Storage Internal Storage [ID #3]
|-- Storage Memory Card [ID #4]
Use mount command to make one of them a windows removable drive
PS C:\Users\caver\Downloads> .\mtpmount-x64.exe mount "#3" h:
This is mtpmount, version 19.8.0 from commit 43033d6
This program comes with NO WARRANTY. Usage only at your own risk.
Drive H:\ is now Alpha 200i\Internal Storage. Don't forget to unmount the drive (using unmount command) before disconnecting your device
PS C:\Users\caver\Downloads>
Then you do your drive access work. Then you run this to dismount:
PS C:\Users\caver\Downloads> .\mtpmount-x64.exe unmount "#3"
This is mtpmount, version 19.8.0 from commit 43033d6
This program comes with NO WARRANTY. Usage only at your own risk.
Alpha 200i\Internal Storage has been unmounted successfully.
Syncing Alpha 200i. DO NOT UNPLUG THIS DEVICE YET!
the terminal pauses for about 5 seconds here
Cache OK
All content synced to Alpha 200i. You may now unplug this device.
PS C:\Users\caver\Downloads>
My questions about this:
does dokany affect the rest of your file system access, by running all file system operations through its proxy for all drives? If so, does that slow things down or add another possible route for file system corruption in the event of an undiscovered bug in dokany or such?
we work with the Garmin GPS units in an environment where unplug timing can't really be reliably controlled. In other words, we really need to be able to unplug immediately after the transfer is done, without waiting for the pregnant pause during the unmount process. What's the word on hot-unplugging of a MTP device that's mounted using mtpmount? Unplugging without running 'mtpmount unmount', and also, unplugging during the pregnant pause? Of those two options, seems like it would be safer to just not run unmount - you get the impression that the 5-second sync would be a really bad time to unplug... For USB Mass Storage Devices, I know it's always recommended to properly eject the device from Windows first, before physically unplugging, but we've never experienced a problem due to hot-unplugging of USB Mass Storage Mode Garmin GPSes.
have you made this all into a turnkey installer solution, i.e. one overall installer that installs dokany then installs mtpmount then also installs the rest of your application? I am not familiar with installers like Nullsoft or such and I definitely plan to RTFM there, but just wondering if you've encountered any specific hiccups on these lines.
Thanks and congrats on getting it working!