Здравствуйте! У меня возникла такая ситуация: при загрузке драйвер ставит свою ProcessNotifyRoutine через PsSetCreateProcessNotifyRoutine, в ней проверяет имя процесса и если это винлогон, то аттачится к нему и ставит хук на функцию из вин32к. Когда хук ставится через патч SDT Shadow, то все проходит успешно, а если через сплайсинг, то система падает с IRQL_NOT_LESS_OR_EQUAL. Но если я делаю это при уже загруженной системе, то все работает, как часы. Подскажите, в чем может быть проблема? Заранее благодарю.
Пока к сожалению не имею возможности... Кстати, в момент запуска винлогона на него отмаплена вин32к...или нет?
Код IRQL_NOT_LESS_OR_EQUAL не всегда означает то самое. Ещё одна не менее (если не более) распространённая причина - память невалидная. Ну т.е. вообще. Ни кем не выделенная, ни из пула, ни ещё как-либо. Просто какой-то виртуальный адрес, по которому нет никакой проекции, нет соответствия физическим страницам.
Ясно. Спасибо. А тогда есть какой-нибудь вариант как хукнуть функцию из вин32к не через шадоу таблицу при загрузке винды?