Точки входа библиотеки DLL
Точки входа библиотеки DLL
Для каждой создаваемой DLL вы можете указать точку входа запуска библиотеки, которая обычно автоматически вызывается при каждом подключении или отключении процесса. В то же время, в функции LoadLibraryEx предусмотрена опция, позволяющая подавить вызов точки входа. В случае неявно связываемых (связываемых во время выполнения) библиотек DLL подключение и отключение процесса происходит, соответственно, при его запуске и завершении. В случае же явно связываемых DLL это осуществляется при вызове функций LoadLibrary, LoadLibraryEx и FreeLibrary.
Кроме того, точка входа вызывается всякий раз, когда процесс создает новый поток (глава 7) или прекращает его выполнение.
Точкой входа с именем DllMain, прототип которой приводится ниже, мы воспользуемся в полной мере только в главе 12 (программа 12.4), где она предоставит потокам удобный способ управления ресурсами и так называемыми локальными областями хранения потоков (Thread Local Storage, SLT) в DLL с многопоточной поддержкой.
BOOL DllMain(HINSTANCE hDll, DWORD Reason, LPVOID Reserved)
Параметр hDll является дескриптором экземпляра DLL, возвращенным функцией LoadLibrary. Значение NULL параметра Reserved указывает на то, что подключение процесса к библиотеке произошло в результате вызова функции Load-Library; иные значения этого параметра свидетельствуют о подключении к библиотеке в результате неявного связывания во время загрузки. Подобным образом, к значению NULL параметра Reserved приводит и отключение процесса от библиотеки в результате вызова функции FreeLibrary.
Параметр Reason может иметь одно из четырех значений: DLL_PROCESS_ATTACH, DLL_THREAD_ATTACH, DLL_THREAD_DETACH и DLL_PROCESS_DETACH. Функции точки входа DLL обычно используют операторы switch и в качестве индикатора успешного выполнения возвращают значение TRUE.
Система сериализует вызовы DllMain таким образом, что в каждый момент времени выполнять ее может только один поток (к подробному обсуждению потоков мы приступим в главе 7). Эта сериализация весьма существенна, поскольку операции инициализации, которые должна выполнять DllMain, не должны прерываться до их завершения. По этой же причине внутри точки входа не рекомендуется использовать блокирующие вызовы функций, например, функций ввода/вывода или функций ожидания (см. главу 8), поскольку они будут препятствовать запуску точки входа другими потоками. В частности, не следует вызывать внутри точки входа DLL функции LoadLibrary и LoadLibraryEx, поскольку это будет порождать дополнительные вызовы точек входа DLL.
Функция DisableThreadLibraryCalls отменяет отправку указанному экземпляру DLL уведомлений о подключении и отключении потоков. Запрет отправки уведомлений может пригодиться в тех случаях, когда потоки не нуждаются в каких-либо уникальных ресурсах во время инициализации.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Сценарии входа для всех локальных пользователей
Сценарии входа для всех локальных пользователей Сценарии входа групповой политики подключаются в разделе Конфигурация пользователя|Конфигурация Windows|Сценарии (вход/выход из системы) (User Configuration|Windows Configuration|Scripts (Logon/Logoff)). В этом разделе нужно выбрать свойство Вход в
Сценарий входа для одного пользователя
Сценарий входа для одного пользователя Сценарии входа для отдельных пользователей назначаются с помощью оснастки Локальные пользователи и группы (Local users and groups). Замечание В Windows NT для этого использовался Диспетчер пользователей (User Manager for Domain). Для добавления этой
Примеры сценариев входа/выхода
Примеры сценариев входа/выхода Ниже рассмотрены несколько сценариев (два из которых являются обычными командными файлами), которые можно использовать в качестве сценариев входа или
2.1. Выбор способа входа в систему
2.1. Выбор способа входа в систему Для начала работы в Windows Vista нужно выполнить вход в систему с использованием одной из имеющихся в системе учетных записей. По умолчанию для этого используется экран приветствия, где отображаются названия всех учетных записей и их значки
Окно входа в систему
Окно входа в систему Строго говоря этот модуль тоже не часть среды Cinnamon, а является инструментом настройки дисплейного менеджера MDM (изначально аббревиатура Mint Display Manager, ныне превратившаяся в рекурсивное MDM Display Manager), обеспечивающего во всех редакциях дистрибутива Mint
24.2. Изменение фона страницы входа в систему
24.2. Изменение фона страницы входа в систему Страницу входа в систему мы видим не так часто, чтобы можно было предъявлять к ее красоте какие-то особые требования. Тем не менее изменить фон этой страницы можно, и сделать это достаточно просто. В Интернете существуют огромные
Новый диалог входа пользователя в систему
Новый диалог входа пользователя в систему В Windows XP появился новый диалог для входа пользователя в систему, применяемый по умолчанию. Если раньше в операционной системе Windows 2000 вас встречало компактное окно для ввода имени пользователя и пароля, то теперь вас ждет красиво
Точка входа в воронку продаж
Точка входа в воронку продаж Точками входа являются страницы сайта, позволяющие пользователю включиться в процесс покупки. Иными словами, точка входа – это дверь (или несколько дверей) в дом, выставленный на продажу. Здесь вы уже можете управлять процессом убеждения и
Варианты входа в Сеть
Варианты входа в Сеть Сегодня существует множество способов подключения к Интернету. Для этого используют следующие средства связи.• Модем – специальное устройство, которое подключается к телефонной розетке; этот доступ еще называется коммутируемым или dial-up.•
3.9. Экран входа в систему. Изменение темы GDM
3.9. Экран входа в систему. Изменение темы GDM При установке Ubuntu вам предлагалось выбрать возможность автоматического входа пользователя в систему. Если вы почему-то этого не сделали, и вам надоело каждый раз вводить свой пароль, выберите конфигуратор Система |
Список пользователей окна входа в систему
Список пользователей окна входа в систему Можно запретить или разрешить отображение определенных учетных записей в диалоге входа в операционную систему. Для этого достаточно воспользоваться параметрами ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
Настройки входа в систему
Настройки входа в систему Большинство настроек входа в систему хранится в параметрах ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem.• VerboseStatus – если значение данного параметра REG_DWORD-типа равно 1, то при входе пользователя в систему (и при завершении работы) будут
1.10.2. Настройки входа в систему
1.10.2. Настройки входа в систему Настройка параметров входа в систему происходит в окне мини-утилиты Учетные записи (Accounts), вызов которой осуществляется из окна Системные настройки (System Preferences). Прежде чем перейти к настройкам, необходимо произвести щелчок мышью на значке
Дополнения точек входа в САС
Дополнения точек входа в САС Международный Союз по телекоммуникациям ввел несколько дополнений точек входа в САС X.509 v2 [78]. Они связывают с точками входа в САС некоторые дополнительные атрибуты. Каждое дополнение может быть помечено как критичное или некритичное.