DisableThreadLibraryCalls |
Declare Function Api_DisableThreadLibraryCalls& Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule&) |
Declare Function DisableThreadLibraryCalls Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule As Long) As Long |
|
hLibModule で指定されたダイナミックリンクライブラリ(DLL)の通知 DLL_THREAD_ATTACH と DLL_THREAD_DETACH を無効にする。これにより、アプリケーションのワーキングコードセットのサイズを減らすことができる。 |
|
パラメータ たは、hLibModule パラメータに無効なモジュールハンドルが指定されている場合は、DisableThreadLibraryCalls 関数が失敗する。拡張
エラー情報を取得するには、 関数を使う。 を無効にできる。この方法は、多くの DLL を使い、スレッドを頻繁に作成して削除するマルチスレッドアプリケーションを最適化する場合に 便利である。また、DLL でアタッチやデタッチのスレッドレベル通知を必要としないマルチスレッドアプリケーションを最適化する場合も便利で ある。例としては、リモートプロシージャコール(RPC)サーバーアプリケーションなどがある。このようなアプリケーションでは、DLL の初期化 ルーチンがメモリに残り、DLL_THREAD_ATTACH 通知と DLL_THREAD_DETACH 通知をサービスすることがよくある。通知を無効に すると、DLL の初期化コードはスレッドの作成や削除のためにページインされることはない。そのため、アプリケーションのワーキングコードセ ットを減らすことができる。最適化を実装するには、DLL の DLL_PROCESS_ATTACH コードを変更し、DisableThreadLibraryCalls を 呼び出す。 |