Пытаюсь загрузить из реестра свою dll вот код proc DllEntryPoint hinstDLL,fdwReason,lpvReserved invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK mov eax,TRUE ret endp [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\mydll] "DLLName"="mydll" "Startup"="on_load" "Asynchronous"=dword:00000001 положил ее в system32 Я ожидал увидеть месседж бокс при перезагрузке. 1) Почему не заработало? 2) планировал в DllEntryPoint добавить зацикленый код типа L: Sleep,5000 jmp L Будет работать?
Не стоит вызывать MessageBox из DllMain. Твоя библиотека не загрузится. Система даёт определённое время на выполнение DllMain, если не уложишся в это время-Dll не будет загружена. Так что не чтоит вызывать тормозных функций типа MessageBox, и делать задержки в DllMain. Примерно так.
>>Система даёт определённое время на выполнение DllMain, если не уложишся в это >>время-Dll не будет загружена asd, специально делал Sleep,5000 в DllMain, все грузится (правда не из реестра как мне нужно, а просто из исполняемого модуля DLL гружу). Вот для дайвера - где то читал что по времени критично. n0name, ты прав - моя невнимательность. надо было "DLLName"="mydll.DLL" Только вот система совсем грузиться перестала 8(( Надо теперь с ливсиди WIN_PE чинить. Не могу понять из Экспортируемой функции описнаой как Startup в реестре я обязательно должен делать RET?
конечно. Если тебе надо чтоб код испольнялся некоторое время и не тормозил систему, то лучше помещай его в поток.