다음을 통해 공유


TpSetCallbackRaceWithDll 함수(winnt.h)

미해결 콜백이 있는 한 지정된 DLL이 로드된 상태로 유지되도록 합니다.

구문

void TpSetCallbackRaceWithDll(
  [in, out] PTP_CALLBACK_ENVIRON CallbackEnviron,
  [in]      PVOID                DllHandle
);

매개 변수

[in, out] CallbackEnviron

콜백 환경을 정의하는 TP_CALLBACK_ENVIRON 구조체입니다. InitializeThreadpoolEnvironment 함수는 이 구조를 반환합니다.

[in] DllHandle

DLL에 대한 핸들입니다.

반환 값

없음

설명

콜백이 로더 잠금을 획득할 수 있는 경우 이 함수를 호출해야 합니다. 이렇게 하면 DllMain의 한 스레드가 콜백이 끝날 때까지 대기하고 콜백을 실행하는 다른 스레드가 로더 잠금을 획득하려고 할 때 교착 상태가 발생하지 않습니다.

콜백이 포함된 DLL이 언로드될 수 있는 경우 DllMain의 정리 코드는 개체를 해제하기 전에 미해결 콜백을 취소해야 합니다.

콜백 라이브러리를 지정하는 TP_CALLBACK_ENVIRON 사용하여 만든 콜백을 관리하는 것은 처리 집약적입니다. 콜백이 실행되는 동안 라이브러리가 언로드되지 않도록 하거나 실행할 수 있는 콜백이 로더 잠금을 획득하지 않도록 보장하기 위한 다른 옵션을 고려해야 합니다.

이 함수는 인라인 함수로 구현됩니다.

요구 사항

   
대상 플랫폼 Windows
헤더 winnt.h

추가 정보

TpDestroyCallbackEnviron

TpInitializeCallbackEnviron

TpSetCallbackActivationContext

TpSetCallbackCleanupGroup

TpSetCallbackFinalizationCallback

TpSetCallbackLongFunction

TpSetCallbackNoActivationContext

TpSetCallbackPersistent

TpSetCallbackPriority

TpSetCallbackThreadpool