Как найти и закрыть все ручки с открытым файлом на съемном диске (перед выбросом)
-
13-09-2019 - |
Вопрос
Я пытаюсь выбросить (виртуальный) съемный диск, и он не удается, потому что есть несколько открытых ручек файлов, может быть, Windows Explorer. Как лучше всего поднять все открытые ручки для файлов на этом диске и закрепить их?
Независимо от того, можно ли (внутри пользовательского режима) найти какие-либо процессы, запущенные с этого диска, поэтому я могу предупредить пользователя с помощью имени процесса?
В идеале я хотел бы сделать это в приложении пользователя, а не требует привилегий администратора.
Я использую VC ++ в Visual Studio 2005, в приложении MFC, но образцы на любом языке будут приветствовать!
Решение
А Процесс -исследователь Утилита может искать открытые ручки, но я не знаю, может ли это сделать это без повышенных привилегий. Из того, что я смог собрать, он делает это, используя API «Счетчики производительности».
Я думаю, что эта статья делает то, что вам нужно, перечислить процессы работы, перечислить ручки для каждого из них, ищите направление файла, ссылаясь на путь на рассматриваемый диск: