¿Cómo encontrar y cierre todos los identificadores de archivo abierto en una unidad extraíble (antes de expulsar)

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

Pregunta

Estoy tratando de expulsar una unidad extraíble (virtual), y se produce un error porque hay algunos identificadores de archivo abierto, tal vez el Explorador de Windows. ¿Cuál es la mejor manera de conseguir todos los identificadores abiertos a los archivos en esa unidad y cerca de ellos?

¿Es también posible (dentro de modo de usuario) para encontrar procesos que se ejecutan fuera de esa unidad, por lo que se puede advertir al usuario con el nombre del proceso?

Lo ideal sería que me gustaría hacer esto dentro de una aplicación en modo de usuario en lugar de requerir privilegios de administrador.

Estoy usando VC ++ en Visual Studio 2005, en una aplicación MFC, pero las muestras en cualquier idioma sería bienvenido!

¿Fue útil?

Solución

El Proceso utilidad Explorador puede buscar los identificadores abiertos, pero no sé si puede hacerlo sin privilegios elevados. Por lo que he podido reunir, lo hace mediante la API "contadores de rendimiento".

Creo que este artículo hace lo que necesita, enumerar los procesos en ejecución, enumerar las asas para cada uno, buscar un identificador de archivo hace referencia a un camino a la unidad en cuestión:

Cómo enumerar proceso que controla?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top