다음을 통해 공유


TraceLoggingUnregister 함수(traceloggingprovider.h)

TraceLogging 공급자를 등록 취소합니다.

구문

void TraceLoggingUnregister(
  TraceLoggingHProvider hProvider
);

매개 변수

hProvider

등록을 취소할 TraceLogging 공급자의 핸들입니다.

반환 값

없음

설명

구성 요소가 실행되기 시작하면 구성 요소의 모든 TraceLogging 공급자 핸들이 등록되지 않은 상태가 되고 공급자의 핸들을 사용하여 이벤트를 생성하려는 시도는 자동으로 무시됩니다. 공급자가 이벤트를 작성하려면 TraceLoggingRegister를 사용하여 공급자를 등록해야 합니다. 일반적으로 구성 요소를 시작하는 동안 이 작업을 수행합니다. 구성 요소 종료 시 TraceLoggingUnregister를 호출하여 공급자의 등록을 취소합니다( 예: 실패한 DriverEntry에서 main반환하기 전에 , wmain또는 WinMain에서 DllMain(DLL_PROCESS_DETACH)) 또는 드라이버 언로드 루틴에서 반환하기 전에.

TraceLoggingRegister는 동일한 핸들에서 TraceLoggingRegister 또는 TraceLoggingUnregister에 대한 다른 호출과 관련하여 스레드로부터 안전하지 않습니다. 다른 스레드가 동일한 핸들에서 TraceLoggingRegister 또는 TraceLoggingUnregister를 동시에 호출할 수 있는 경우 TraceLoggingRegister를 호출하지 마세요.

TraceLoggingRegister가 실패하면 공급자 핸들은 등록되지 않은 상태로 유지되고 공급자 핸들의 모든 사용은 안전한 no-ops가 됩니다. 특히 등록되지 않은 공급자 핸들을 사용하여 TraceLoggingWrite 또는 TraceLoggingUnregister 를 호출하는 것은 안전한 no-op입니다.

중요

DLL 또는 드라이버가 공급자 핸들을 호출 TraceLoggingRegister 하는 경우 DLL 또는 드라이버가 언로드되기 전에 해당 공급자 핸들에서 를 호출 TraceLoggingUnregister해야 합니다. DLL이 를 호출 TraceLoggingUnregister하지 않고 언로드하는 경우 프로세스가 이후에 충돌할 수 있습니다. 드라이버가 를 호출 TraceLoggingUnregister하지 않고 언로드하는 경우 시스템이 이후에 충돌할 수 있습니다. 함수는 TraceLoggingRegister ETW 구성 콜백을 설정하고 콜백 TraceLoggingUnregister 을 취소합니다. 콜백이 취소되지 않고 모듈이 언로드되면 다음에 ETW가 콜백을 호출하려고 할 때 충돌이 발생합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
머리글 traceloggingprovider.h
라이브러리 Advapi32.lib

추가 정보

TraceLoggingRegister

EventUnregister