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 |
추가 정보
TpSetCallbackActivationContext
TpSetCallbackFinalizationCallback