Ejecting a USB drive using Cygwin (sync)?

David Allsopp David.Allsopp@cl.cam.ac.uk
Thu Jan 25 09:58:00 GMT 2018


Brian Inglis wrote:
> On 2018-01-23 16:36, Steven Penny wrote:
> > 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.
> 
> I was providing information, that's why I said /from/, gave the link to
> the original, and included the copyright, which does not include a link
> to the MSDN article it mentions:

I expect it's referring to this article:
https://support.microsoft.com/en-us/help/165721.
There's another quite good article on it at
https://www.codeproject.com/Articles/259577/How-to-flush-a-storage-volumes-t
he-file-cache-lock

> checking any licences are left as an
> exercise for any reader who wants to make use of the program or code
> other than for their own private use.

What licence is the ellipsis you added to the copyright line released under?
;o)


--dra


--
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