Функция DisableThreadLibraryCalls отключает уведомления DLL_THREAD_ATTACH и DLL_THREAD_DETACH для указанной динамически подключаемой библиотеки (DLL). Это может уменьшить размер рабочего объема памяти для некоторых приложений.
Синтаксис
BOOL DisableThreadLibraryCalls( HMODULE hModule ); |
Параметры
Обратите внимание! на то, что Вы не можете вызвать функцию GetModuleHandle с ПУСТО (NULL), потому что она возвращает базовый адрес исполняемого загрузочного модуля, а не загрузочного модуля DLL. |
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение не нуль.
Если функция завершается ошибкой, возвращаемое значение равняется нулю. Функция DisableThreadLibraryCalls завершается ошибкой, если DLL, определенная параметром hModule имеет активную статическую локальную память потока (TLS), или если hModule - недопустимый дескриптор модуля. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Замечания
Функция DisableThreadLibraryCalls позволяет DLL отключать вызовы уведомлений DLL_THREAD_ATTACH и DLL_THREAD_DETACH. Это может быть полезно для оптимизации многопоточных приложений, которые имеют много DLLs, часто создают и удаляют потоки, и чьи DLLs не нуждаются в этих уведомлениях о подсоединении/отделении на уровне потока. Вызов удаленной процедуры (RPC) серверного приложения - пример такой прикладной программы. В этом сорте приложений, процедуры инициализации DLL часто остаются в памяти, чтобы обслужить уведомления DLL_THREAD_ATTACH и DLL_THREAD_DETACH. При запрещении уведомления, код инициализации DLL не просматривается, потому что поток создается или удаляется таким образом, что размер пакета рабочего кода приложения сокращается. Чтобы выполнить оптимизацию, измените код DLL_PROCESS_ATTACH в DLL, чтобы вызвать DisableThreadLibraryCalls.
Смотри также
Обзор Динамически подключаемые библиотеки (DLL), Функции, используемые DLL, FreeLibraryAndExitThread
Размещение и совместимость DisableThreadLibraryCalls |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professiona |
Да |
и |
Windows NT Workstation |
Да версии 3,5 и выше |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Да |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 3,5 и выше |
в | ||
е | ||
р | ||
Используемая библиотека |
Kernel32.lib |
|
Используемая DLL | kernel32.dll | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |