Safely Ejecting a Drive - I almost never find any program using the device. Why doesn't Windows say which programs are using the device?
Solution 1:
In the early days of USB, things were pretty flaky and you were likely to blue-screen your computer if you unplugged a USB connection without due care.
USB is now far more robust and reliable and you are unlikely to have those types of problem. However, there is also the quite separate question of caching.
When writing data to a USB device, caching is likely to be used to boost overall performance. This means that you may think your file copying has completed, but part of the file is still in memory and is still being written to the USB device. For this reason, the safe removal function is still very necessary. If you unplug a USB device while it is being written to, you are very likely to corrupt your file and possibly also damage the USB device.
The safe removal function ensures that the data transfer to the USB device completes and the file is closed, so that you know when you can remove the USB device without corrupting your data or damaging your devices.
(If you want to find out what process is accessing the USB device, you may use the Sysinternals handle utility.)
Solution 2:
If closing all programs that could be accessing the drive doesn't work, try emptying the recycle bin for that drive or a quick format (after first saving any needed files in another location).
I had a 200G USB drive that I used regularly for transferring files. When I deleted a tree, I had always used Shift-Delete for immediate delete / bypass recycle bin. Eject worked with no delay. But several times I accidentally used Delete and many files went into the recycle bin. Then every time thereafter when I tried to eject, I got the "This device is currently in use" message.
The SysInternals Handles utility showed several handles related to the recycle bin. After a quick format, ejection requests immediately succeed every time.
Solution 3:
The main program that it will not tell you about is Windows Explorer and anything that uses the Windows Explorer Sub Subsytem. Also any Explorer third party (Tree Size, xPlorer2). Make sure these are all closed, also close any App Save (As) window.
The apps / systems above hold the USB in Use until cleared.
I normally close Explore windows (Open / Save) in Apps (Office, Adobe, Other) quickly so as to minimize this interference. Then I usually just have to close my main File Explorer instances.
When all the above are closed, wait 15 seconds and eject again. This normally (90%) works for me.
Windows 10 did not end this need, and I am not aware that it was supposed to end the need. I have been using Windows 10 for 5 years now.