取り外し可能なドライブですべての開いたファイルハンドルを見つけて閉じる方法(排出前)

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

質問

私は(仮想)リムーバブルドライブを排出しようとしていますが、いくつかのファイルハンドルが開いている、おそらくエクスプローラーウィンドウがあるために失敗します。そのドライブのファイルにすべてのオープンハンドルを取得して閉じる最良の方法は何ですか?

また、(ユーザーモード内で)そのドライブを実行しているプロセスを見つけることも可能ですか?そのため、プロセス名でユーザーに警告することができますか?

理想的には、管理権を要求するのではなく、ユーザーモードアプリ内でこれを行いたいと思います。

Visual Studio 2005のMFCアプリでVC ++を使用していますが、あらゆる言語のサンプルは大歓迎です!

役に立ちましたか?

解決

プロセスエクスプローラー ユーティリティはオープンハンドルを検索できますが、特権を高めずにそうすることができるかどうかはわかりません。私が収集できたことから、「パフォーマンスカウンター」APIを使用してこれを行います。

この記事は、必要なことを行い、実行中のプロセスを列挙し、それぞれのハンドルを列挙し、問題のドライブのパスを参照するファイルハンドルを探します。

プロセスのハンドルを列挙する方法は?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top