我正在尝试弹出(虚拟)可移动驱动器,并且由于某些文件处理打开,也许还有Explorer Windows,它会失败。将所有开放式操作转到该驱动器上并关闭它们的最佳方法是什么?

是否也可行(在用户模式内)查找从该驱动器中运行的任何进程,因此我可以警告用户使用该过程名称?

理想情况下,我想在用户模式应用程序中执行此操作,而不是需要管理特权。

我在MFC应用中使用Visual Studio 2005中的VC ++,但欢迎任何语言的样本!

有帮助吗?

解决方案

流程资源管理器 实用程序可以搜索开放式手柄,但是我不知道如果没有提高特权,它是否可以这样做。从我能够收集的东西来看,它使用“性能计数器” API来做到这一点。

我认为本文可以完成您的需求,列举运行过程,列举每个手柄,寻找一个文件句柄,引用有关驱动器上的路径:

如何枚举流程的手柄?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top