DisableThreadLibraryCalls
The DisableThreadLibraryCalls
function disables the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications for
the dynamic-link library (DLL) specified by hLibModule. This can reduce
the size of the working code set for some applications.
BOOL DisableThreadLibraryCalls(
HMODULE hLibModule |
// dynamic-link
library for which calls are to be disabled |
); |
|
Parameters
hLibModule
Specifies the
dynamic-link library module for which the DLL_THREAD_ATTACH and
DLL_THREAD_DETACH notifications are to be disabled.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. The DisableThreadLibraryCalls
function fails if the DLL specified by hLibModule has active static
thread local storage, or if hLibModule is an invalid module handle. To
get extended error information, call GetLastError
Remarks
The DisableThreadLibraryCalls
function lets a DLL disable the DLL_THREAD_ATTACH and DLL_THREAD_DETACH
notification calls. This can be a useful optimization for multithreaded
applications that have many DLLs, frequently create and delete threads, and
whose DLLs do not need these thread-level notifications of
attachment/detachment. A remote procedure call (RPC) server application is an
example of such an application. In these sorts of applications, DLL
initialization routines often remain in memory to service DLL_THREAD_ATTACH and
DLL_THREAD_DETACH notifications. By disabling the notifications, the DLL
initialization code is not paged in because a thread is created or deleted,
thus reducing the size of the application s working code set. To implement the
optimization, modify a DLL s DLL_PROCESS_ATTACH code to call DisableThreadLibraryCalls.
See Also