Добрый день Почитал про 3 способа работы с занятыми файлами, покурил msdn на ZwQueryInformationFile, понял что из usermode мне надо использовать NtQueryInformationFile. Остался один вопросец. Мне нужно просто проверить, открыт ли конкретный файл. Я могу это сделать зная его полное имя или мне придётся в любом случае перечислять все открытые файлы и сравнивать их с моим?
И чем оно тебе поможет с занятыми файлами? Перечислить все хендлы, выбрать хендлы типа "файл", скопировать себе и сделать ZwQueryObject (ObjectNameInformation).
а нельзя просто открыть этот файл, получить INVALID_HANDLE_VALUE, а затем проверить статус? конечно, если требуемый файл не был открыт с правами share all. а вообще, честно говоря я не понял что требуется сделать. какие три способа? где прочитал?
Есть "дзенная" статья мсрема про работу с занятыми файлами на этом сайте. Можно. Если как раз таки не открыт с share all. Впрочем, что нужно автору я так и не понял. На канале я высказался насчет ZwQueryInformationFile, упомянутой в первом посте:
Greate Так все же - средствами WinAPI (без Nt|Zw) возможно определить, какие процессы юзают заданный файл (открытый с пом-ю CreateFile)?