Как найти и закрыть все ручки с открытым файлом на съемном диске (перед выбросом)

StackOverflow https://stackoverflow.com/questions/1862028

Вопрос

Я пытаюсь выбросить (виртуальный) съемный диск, и он не удается, потому что есть несколько открытых ручек файлов, может быть, Windows Explorer. Как лучше всего поднять все открытые ручки для файлов на этом диске и закрепить их?

Независимо от того, можно ли (внутри пользовательского режима) найти какие-либо процессы, запущенные с этого диска, поэтому я могу предупредить пользователя с помощью имени процесса?

В идеале я хотел бы сделать это в приложении пользователя, а не требует привилегий администратора.

Я использую VC ++ в Visual Studio 2005, в приложении MFC, но образцы на любом языке будут приветствовать!

Это было полезно?

Решение

А Процесс -исследователь Утилита может искать открытые ручки, но я не знаю, может ли это сделать это без повышенных привилегий. Из того, что я смог собрать, он делает это, используя API «Счетчики производительности».

Я думаю, что эта статья делает то, что вам нужно, перечислить процессы работы, перечислить ручки для каждого из них, ищите направление файла, ссылаясь на путь на рассматриваемый диск:

Как перечислять ручки процесса?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top