![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Router |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.11.2007 Репутация: нет Всего: нет |
Меня интересует этап создания процесса,
на котором рекурсивно загружаются все библиотеки из таблиц импорта. Я понимаю это так: - создается адресное пространство. - проецируется исполняемый модуль (файл программы). - загрузчик просматривает таблицу того или иного модуля. - если какой-то библиотеки нет, то он ее проецирует в текущее адресное пространство. А вопрос в том, как (кем и в контексте какого потока вызывается) и когда (до или после создания главного потока) происходит вызов главных функций этих библиотек? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 5 Всего: 211 |
Стоит почитать Джефри Рихтера.
http://wm-help.net/books-online/book/59464/59464-23.html#h1 тут есть подробные ответы на все твои вопросы. |
|||
|
||||
| bra1ny |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
KiThreadStartup->LdrInitializeThunk( она и загружает библиотеки и вызывает dllmain с DLL_PROCESS_ATTACH ).
Потом ( диспетчер APC ?) вызывает главную функцию потока. Это сообщение отредактировал(а) bra1ny - 26.3.2010, 23:05 --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
кстати, а в сорцах ядра винды (частично выложенных) нету процессов ?
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Router |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.11.2007 Репутация: нет Всего: нет |
Хорошо, ну все же меня интересует системы Windows NT
Я сделал такой пример: библиотека (module.dll) в DllMain открывает файл в качестве доступа SharedMode я передаю 0 и (app.exe) приложения которое статически линкует module.dll в app.exe первым делом открывается тот же файл с SharedMode = 0 в результате получилось что app.exe открывает его первым (я даже ставил Sleep() в app.exe, и с ним app.exe открывает его первым ) а dll даже не подает признаков что не смогла открыть его. В результате вопрос, а действительно ли в статически слинкованых dll вызываются DllMain? И если все таки да, то что произойдет когда в DllMain поставить бесконечный цикл, какой поток будет выполнять этот самый цикл ? |
|||
|
||||
| bra1ny |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
каких процессов? если вы про подсистему , смотрите обычные сорцы )
А я вам про какую? Вот сейчас сверил с Руссиновичом , что вчера вам написал , я не ошибся. Это сообщение отредактировал(а) bra1ny - 27.3.2010, 15:26 --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
||||
|
|||||
| Router |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.11.2007 Репутация: нет Всего: нет |
Про windows NT это я просто подчеркнул, а то забыл сказать про это.
И все же хотелось, что бы вы прокомментировали мой второй пост, а то я запутался. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |