Share via


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 포함)

추가 정보

DestroyThreadpoolEnvironment

FreeLibraryWhenCallbackReturns

InitializeThreadpoolEnvironment

SetThreadpoolCallbackCleanupGroup

SetThreadpoolCallbackPool

SetThreadpoolCallbackPriority

SetThreadpoolCallbackRunsLong

스레드 풀