If you have Administrator Privileges, this procedure seems to work consistently (tried in Win Vista, Win7 and Win10):
1. Check that all applications are closed, as far as possible, including Explorer
2. In Computer Management -> Storage -> Disk Management, find the offending drive in the list (lower central pane).
3. Right click on its left label (where it gives the size of the physical drive, and states that it is Online) and select Offline.
4. You should now be able to eject it, using the normal ejecting procedure, without an "in-use" warning.
5. Wait 2-3 minutes, so that any retrying applications which were accessing the drive will have timed out.
6. Plug the drive back in, and it will reappear on the list, but Offline this time. Right click again to set it to Online.
7. Wait a few seconds for the usual things to happen when the drive is connected, but immediately close any applications which start up.
8. Use the normal ejection procedure and this time it should work.
If step 8 does not produce a clean ejection (try it more than once), then it suggests that there is a process which begins to open files on that drive the moment that it is connected. This could be any of a number of things, ranging from the Windows disk indexing, though an application written to search for and open files of a particular type whenever they are present on the system, to a virus or other malware. All I can suggest is to search for such things and shut them down one at a time, or refer the problem to a system hacker.