SetThreadpoolCallbackLibrary 함수(winbase.h)
지정된 DLL이 미해결 콜백이 있는 한 로드된 상태로 유지되도록 합니다.
구문
void SetThreadpoolCallbackLibrary(
[in, out] PTP_CALLBACK_ENVIRON pcbe,
[in] PVOID mod
);
매개 변수
[in, out] pcbe
콜백 환경을 정의하는 TP_CALLBACK_ENVIRON 구조체입니다. InitializeThreadpoolEnvironment 함수는 이 구조를 반환합니다.
[in] mod
DLL에 대한 핸들입니다.
반환 값
없음
설명
콜백이 로더 잠금을 획득할 수 있는 경우 이 함수를 호출해야 합니다. 이렇게 하면 DllMain의 한 스레드가 콜백이 끝날 때까지 대기하고 콜백을 실행하는 다른 스레드가 로더 잠금을 획득하려고 할 때 교착 상태가 발생하지 않습니다.
콜백이 포함된 DLL이 언로드될 수 있는 경우 DllMain의 정리 코드는 개체를 해제하기 전에 미해결 콜백을 취소해야 합니다.
콜백 라이브러리를 지정하는 TP_CALLBACK_ENVIRON 사용하여 만든 콜백을 관리하는 것은 다소 처리 집약적입니다. 콜백이 실행되는 동안 라이브러리가 언로드되지 않도록 하거나 실행 중일 수 있는 콜백이 로더 잠금을 획득하지 않도록 보장하기 위한 다른 옵션을 고려해야 합니다.
스레드 풀은 이 함수에 제공된 라이브러리 참조의 소유권을 가정합니다. 호출자는 이 함수에 전달한 후 모듈 핸들에서 FreeLibrary 를 호출하면 안 됩니다.
이 함수는 인라인 함수로 구현됩니다.
이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
추가 정보
FreeLibraryWhenCallbackReturns
InitializeThreadpoolEnvironment