Какой Win32 API можно использовать для поиска процесса, у которого открыт данный файл? - PullRequest
10 голосов
/ 08 октября 2008

Если я читаю или записываю файл и получаю сообщение об ошибке 33 или 32, я хочу зарегистрировать сообщение, содержащее имя другого процесса (ов), у которого был открыт файл. Должен быть Win32 API, который я мог бы использовать, чтобы получить эту информацию. Process Explorer отображает его. Конечно, Process Explorer также имеет информацию обо всех процессах в памяти. Я бы предпочел найти виновника без опроса всех процессов.

Ответы [ 2 ]

2 голосов
/ 08 октября 2008

Кажется, делает то, что вы хотите.

очевидно, что он использует некоторый скрытый API, такой как NtQueryInformationProces s.

1 голос
/ 08 октября 2008

Программа Handle из SysInternals также делает это , но я не уверен, как это сделать. Я не думаю, что есть единый документированный API для этого. Я думаю, вам нужно перебрать процессы, перечислить каждый из дескрипторов в процессе, а затем определить имя файла, связанное с этим дескриптором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...