Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Использование dll библиотек в драйвере


Автор: Goganchic 26.8.2008, 12:52
Добрый день, у меня появилась такая проблема: нужно из драйвера подгрузить dll-ку и вытащить оттуда ф-ию. Как это сделать? Пробовал LoadLibrary - но при компиляции DDK говорить что нет такой ф-ии. Что нужно еще дополнительно подключить? Какие хедеры?
Заранее спасибо за ответ.

Автор: ama_kid 26.8.2008, 14:12
Цитата(Goganchic @  26.8.2008,  13:52 Найти цитируемый пост)
Пробовал LoadLibrary - но при компиляции DDK говорить что нет такой ф-ии. Что нужно еще дополнительно подключить? Какие хедеры?
Забей на неё - аналога режима ядра нет...
На правах совета могу дать ссылку на http://www.wd-3.com/archive/KernelDlls.htm и рекомендацию погуглить по слову "ZwSetSystemInformation" - эта функция умеет загружать модули в режиме ядра. Для этого надо вроде как использовать подклассы SystemLoadImage и SystemUnLoadImage, а структуры для них выглядят примерно так:
Код
typedef struct _SYSTEM_LOAD_IMAGE {
UNICODE_STRING ModuleName;
PVOID ModuleBase;
PVOID Unknown;
PVOID EntryPoint;
PVOID ExportDirectory;
} SYSTEM_LOAD_IMAGE, *PSYSTEM_LOAD_IMAGE;
...
typedef struct _SYSTEM_UNLOAD_IMAGE {
PVOID ModuleBase;
} SYSTEM_UNLOAD_IMAGE, *PSYSTEM_UNLOAD_IMAGE;
Большим помочь вряд ли смогу, сам никогда таким не заморачивался...  smile 


Автор: Goganchic 26.8.2008, 23:02
ama_kid, т.е. ты советуешь не заморачиваться с загрузкой dll и по возможности избегать этого, так?

Автор: W4FhLF 27.8.2008, 05:07
Ты хочешь подгрузить её в какой-то процесс? Или куда? Если что-то другое, то оставь эту идею, код ring3 в общем случае в ring0 выполняться не будет. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)