I found a new way to do it on Windows! This method will allow you to "un-eject" the device even if it was ejected with Explorer!
This method does not require any 3rd party applications, it uses the built-in pnputil.
Spoiler:
- Open an Administrator PowerShell prompt
- Find the parent USB device of the Kindle by running this PowerShell command and copying the "Parent" it shows:
Code:
pnputil /enum-devices /connected /relations | Select-String "Kindle Internal Storage" -Context 0,6
NB: This must be run before ejecting the Kindle!
- Un-eject it with this PowerShell command:
Code:
pnputil /disable-device "PARENT DEVICE GOES HERE"; pnputil /enable-device "PARENT DEVICE GOES HERE"
(Insert the parent device from above, it should look something like USB\VID_1949&PID_0324\3040VB5594820045)
NB: You can "eject" it by running the first part of the command, i.e. the part before the semicolon, or by doing what this ServerFault answer suggests.
You're done!
I’m currently writing a Go wrapper around this, with Linux support, so that you can use it cross platform.