4

どのプロセスがファイルのハンドルを開いているかを調べるにはどうすればよいでしょうか? 具体的には、これをプログラムでどのように行うのですか?

4

2 に答える 2

1

そのための API があるかもしれませんが、わかりません。存在する場合は、カーネル内の API である可能性があります。

もう1つの可能性(あいまいで申し訳ありませんが、他の誰もより良い回答を投稿しない場合に備えて、私は今これに答えています)は、(文書化された)APIがなく、それを行うプログラムが文書化されていない知識を使用してそうするということですハンドルの内容、および/またはハンドル (ポインターとして扱われる場合) が指しているメモリの内容: たとえば、私はA Process' Kernel Object Handle Tableを見つけました。リバース エンジニアリングされた文書化されていないメモリ構造) は、私が何年も前に Softice のマニュアルで読んだことを覚えています。

詳細については、 File System Filter Driversを参照してください。

別の (おそらくより良い) 方法は、使用するdependsdumpbin /imports、関連する Sysinternals プログラムが使用している API を確認することです。

于 2009-06-17T18:51:11.310 に答える
-1

Sysinternals の Process Explorer がこれを教えてくれます。

于 2009-06-17T18:19:48.053 に答える