Кто владеет дескриптором файла в Windows? - PullRequest
4 голосов
/ 17 июня 2009

Как узнать, какой процесс имеет открытый дескриптор файла? В частности, как вы делаете это программно?

Ответы [ 2 ]

1 голос
/ 17 июня 2009

Может быть API для этого, я не знаю. Если есть, это может быть API в ядре.

Другая возможность (извините за неопределенность, но я отвечаю на этот вопрос сейчас, если никто не публикует лучший ответ), заключается в том, что нет (документированного) API, и программы, которые делают это, используя незадокументированное знание содержимого дескриптора и / или памяти, на которую указывает дескриптор (когда обрабатывается как указатель): например, я нашел Таблица дескрипторов объекта ядра процесса * , и я Я думаю, что это (люди говорят, что у них были перепроектированные недокументированные структуры памяти) это то, что я помню, читая в руководстве Softice много лет назад.

Для получения дополнительной информации можно найти Драйверы фильтров файловой системы .

Другим (возможно, лучшим) способом может быть использование depends или dumpbin /imports, чтобы попытаться увидеть, какие API использует соответствующая программа Sysinternals.

0 голосов
/ 17 июня 2009

Process Explorer от Sysinternals расскажет вам это.

...