Здравствуйте, reversecode, Вы писали:
R>обоснуйте что ваши коллбеки это не обходимое зло R>и что это _никак_ не переделывается на С R>хотя их аналоги у вас рядом лежат на С
Напр., мне надо указать коллбек для KeInitializeDpc() на адрес функции, которая сгенерена вручную как JIT.
Но адрес коллбека должен быть внутри адресов драйвера, иначе будет bug-check из-за PatchGuard-а.
Для этого в драйвере держу пачку вспомогательных функций, которые должны перенаправить вызов в другие функции.
При этом они должны принимать любые аргументы.
Поэтому написаны они на ассемблере, т.е. просто делают JMP по таблице на нужную функцию.