Como encontrar e fechar todas as alças de arquivo aberto em uma unidade removível (antes de ejetar)
-
13-09-2019 - |
Pergunta
Estou tentando ejetar uma unidade removível (virtual) e falha porque existem algumas alças de arquivo abertas, talvez Windows Explorer. Qual é a melhor maneira de obter todas as alças abertas para os arquivos nessa unidade e fechá -los?
Também é viável (dentro do modo de usuário) encontrar algum processo que seja executado nessa unidade, para que eu possa avisar o usuário com o nome do processo?
Idealmente, eu gostaria de fazer isso dentro de um aplicativo no modo de usuário, em vez de exigir privilégios de administração.
Estou usando o VC ++ no Visual Studio 2005, em um aplicativo MFC, mas as amostras em qualquer idioma seriam bem -vindas!
Solução
o Process Explorer O utilitário pode procurar alças abertas, mas não sei se pode fazê -lo sem privilégios elevados. Pelo que pude reunir, ele faz isso usando a API "contadores de desempenho".
Eu acho que este artigo faz o que você precisa, enumere os processos de execução, enumere as alças para cada um, procure um identificador de arquivo referenciando um caminho na unidade em questão: