Wenn ich in 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, die die Datei geöffnet haben. 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.Welche Win32-API kann verwendet werden, um den Prozess zu finden, der eine bestimmte Datei geöffnet hat?
9
A
Antwort
2
This scheint zu tun, was Sie wollen.
offensichtlich verwendet es einige versteckte API wie NtQueryInformationProces
s.
1
The Handle program from SysInternals does this as well, 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.