如何在可移动驱动器上查找和关闭所有打开的文件手柄(在弹出之前)
-
13-09-2019 - |
题
我正在尝试弹出(虚拟)可移动驱动器,并且由于某些文件处理打开,也许还有Explorer Windows,它会失败。将所有开放式操作转到该驱动器上并关闭它们的最佳方法是什么?
是否也可行(在用户模式内)查找从该驱动器中运行的任何进程,因此我可以警告用户使用该过程名称?
理想情况下,我想在用户模式应用程序中执行此操作,而不是需要管理特权。
我在MFC应用中使用Visual Studio 2005中的VC ++,但欢迎任何语言的样本!
解决方案
这 流程资源管理器 实用程序可以搜索开放式手柄,但是我不知道如果没有提高特权,它是否可以这样做。从我能够收集的东西来看,它使用“性能计数器” API来做到这一点。
我认为本文可以完成您的需求,列举运行过程,列举每个手柄,寻找一个文件句柄,引用有关驱动器上的路径:
不隶属于 StackOverflow