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