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

