Как вызвать эту функцию из ядра, просто объивить ее не получается, линкер ругается: 1>myobj.obj : error LNK2019: unresolved external symbol _ZwSuspendThread@8 referenced in function _MyFunction@0 1>i386\mysys.sys : error LNK1120: 1 unresolved externals В KeServiceDescriptorTable лазить не хочется.
ZwSuspendThread есть только в ntdll.lib Поэтому прилинковать можно, а драйвер работать не будет он не видит эту .dll, он просто не стартанёт
Получается что надо адрес ручками достовать. а как динамически определить по какому смешению он в таблице лежит?
ZwSuspendThread можно вызвать получив ее адрес из SDT. А индекс функции в SDT можно извлечь отдизасмив код ntdll.
relikt Как-то была у меня мысль сделать унифицированный драйвер (типа плугинов в ядре) надо было .dll подгружать динамически. Подгружать как, нашёл, но экспортируется эта ф-ция в ntdll.dll. А драйвер "не видит" эту дэлл физически ! Если только как описано в моём посте, но сложновато...
да и еще что то на мой постhttp://www.wasm.ru/forum/index.php?action=vthread&forum=4&topic=11172 никто не ответил.
а можно ли вызывать из ядра через прерывание? например: _asm { mov eax, serviceid lea edx, [esp+4] int 2eh ret parameterbytestopopoff }