Я тут пишу драйверок, он просто подменяет системные сервисы ядра.
Так вот, мне нужно подменить всего 2 функции:
ZwCreateFile()
ZwOpenFile()
С функцией ZwCreateFile() прошло все легко. А вот с ZwOpenFile у меня небольшая проблема. По ней у меня собственно и вопрос:
я делаю так, — в своем обработчике принимаю все параметры, которые предназначены для функции ZwOpenFile(), проверяю имя файла, оно содержится в одном из параметров функции — структуре ObjectAttributes->ObjectName,
если оно \??\c:\myfile.dat, то что-то делаю, иначе передаю через стек параметры и вызываю оригинальный обработчик.
Так вот, для ZwCreateFile() такая проверка работала, а для ZwOpenFile() почему-то нет.
Хотелось бы услышать возможные идеи по решению этой проблемы. Наверняка это уже кто-нибудь делал.
Заранее спасибо.