Mit welcher Win32-API kann der Prozess gefunden werden, der eine bestimmte Datei geöffnet hat?

9

Wenn ich eine Datei lese oder schreibe und einen Fehler 33 oder 32 erhalte, möchte ich eine Nachricht protokollieren, die den Namen der anderen Prozesse enthält, in denen die Datei geöffnet ist. Es muss eine Win32-API geben, die ich verwenden könnte, um diese Informationen zu erhalten. Process Explorer zeigt es an. Natürlich hat Process Explorer auch Informationen über alle Prozesse im Speicher. Ich würde es vorziehen, den Täter zu finden, ohne alle Prozesse zu hinterfragen.

    
Jeremy Mullin 08.10.2008, 17:34
quelle

2 Antworten

2

Das scheint zu tun, was Sie wollen.

offensichtlich verwendet es eine versteckte API wie NtQueryInformationProces s.

    
shoosh 08.10.2008 17:46
quelle
1

Das Handle-Programm von SysInternals macht das auch , aber ich bin mir nicht sicher, wie . Ich glaube nicht, dass es dafür eine einzige dokumentierte API gibt. Ich denke, Sie müssen über die Prozesse iterieren, jeden der Handles im Prozess aufzählen und dann den Dateinamen bestimmen, der diesem Handle zugeordnet ist.

    
Nick 08.10.2008 17:50
quelle

Tags und Links