Ejecting a USB drive using Cygwin (sync)?
Steven Penny
svnpenn@gmail.com
Tue Jan 23 23:36:00 GMT 2018
On Tue, 23 Jan 2018 14:13:24, Brian Inglis wrote:
> I found the following utility works well without elevation - Windows code from
> http://www.leapsecond.com/tools/eject.{c,exe}:
>
> // eject -- Allow safe removal of USB thumb drive.
> // - Command line tool to flush/dismount/eject USB drive.
> // - Simpler than mouse clicking through taskbar "Safely Remove Hardware" icon.
> // - Usable in batch file scripts.
> // 02-Nov-2012 Tom Van Baak (tvb) www.LeapSecond.com/tools
> ...
> // Per MSDN, follow procedure for safe removal of USB drive.
> int drive_eject (char *drive)
> {
> HANDLE hDev;
> // Convert vintage DOS drive letter to weird Windows object pathname.
> char path[10];
> sprintf(path, "\\\\.\\%s", drive);
> // Open (with write, but no lock) to flush pending writes.
> DEV_OPEN(path, GENERIC_READ | GENERIC_WRITE);
> FlushFileBuffers(hDev);
> CloseHandle(hDev);
> // Open (with read, and lock) to dismount and eject.
> DEV_OPEN(path, GENERIC_READ);
> DEV_IOCTL(FSCTL_LOCK_VOLUME);
> DEV_IOCTL(FSCTL_DISMOUNT_VOLUME);
> DEV_IOCTL(IOCTL_STORAGE_EJECT_MEDIA);
> DEV_IOCTL(FSCTL_UNLOCK_VOLUME);
> CloseHandle(hDev);
> return 0;
> }
No, this is not the code from that site. The code is similar, but I see you have
at least removed some empty lines. If you are going to do so, you need to
clearly present said changes to the community - something like "adapted from
http://..." or "modified from http://...", etc.
Software copyright - even open source license is serious, and you should give it
due respect.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list