DisableThreadLibraryCalls

来源:互联网 发布:淘宝下单后怎么改地址 编辑:程序博客网 时间:2024/06/14 01:07

BOOL WINAPI DisableThreadLibraryCalls(
  __in  HMODULE hModule
);

Disables the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications for the specified dynamic-link library (DLL). This can reduce the size of the working set for some applications.

 

禁用指定的DLL的DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知,这样可以减小某些程序的工作集大小。

 

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.

 

该函数禁用一个DLL的DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知。这对于那些经常创建和删除线程的调用很多DLL的多线程程序是一个很有用的选项。如果这些DLL并不需要这些线程级的attachment/detachment通知。远程过程调用服务程序就是一个例子。在这些程序里,DLL的初始化代码经常留在物理内存里,以相应DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知。通过禁用这些通知,DLL的初始化代码不会由于线程的创建和删除被换页至物理内存,这样就可以减小工作代码集的大小。要实现这个选项,可以在响应DLL_PROCESS_ATTACH通知的时候调用DisableThreadLibraryCalls

原创粉丝点击