Функция DisableThreadLibraryCalls


Функция DisableThreadLibraryCalls отключает уведомления DLL_THREAD_ATTACH и DLL_THREAD_DETACH для указанной динамически подключаемой библиотеки (DLL). Это может уменьшить размер рабочего объема памяти для некоторых приложений.

Синтаксис

BOOL DisableThreadLibraryCalls(
  HMODULE hModule
);

Параметры

hModule
[in] Дескриптор модуля DLL в котором должны быть запрещены уведомления DLL_THREAD_ATTACH и DLL_THREAD_DETACH. Функция LoadLibrary, LoadLibraryEx или GetModuleHandle возвращают этот дескриптор. 
Обратите внимание! на то, что Вы не можете вызвать функцию 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

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz