다음을 통해 공유


ICorProfilerCallback::Shutdown 메서드

응용 프로그램이 종료되고 있음을 프로파일러에 알립니다.

HRESULT Shutdown();

설명

Shutdown 메서드가 호출된 후에는 프로파일러 코드에서 ICorProfilerInfo 인터페이스의 메서드를 안전하게 호출할 수 없습니다. Shutdown 메서드가 반환된 후에 ICorProfilerInfo 메서드를 호출하면 정의되지 않은 동작이 발생합니다. 변경할 수 없는 이벤트 중 일부는 응용 프로그램 종료 후에도 발생할 수 있습니다. 프로파일러는 이러한 이벤트가 발생하는 즉시 반환되어야 합니다.

Shutdown 메서드는 프로파일링 중인 관리되는 응용 프로그램이 관리 코드로 시작된 경우, 즉 프로세스 스택의 초기 프레임이 관리되는 경우에만 호출됩니다. 응용 프로그램이 비관리 코드로 시작되었지만 나중에 관리 코드로 이동하여 CLR(공용 언어 런타임)의 인스턴스를 만들 경우 Shutdown은 호출되지 않습니다. 이러한 경우 프로파일러는 DLL_PROCESS_DETACH 값을 사용하여 리소스를 해제하고 디스크에 추적 내용을 플러시하는 등의 데이터 정리 프로세스를 수행하는 DllMain 루틴을 라이브러리에 포함하여 합니다.

일반적으로 프로파일러에서는 예기치 않은 종료를 처리해야 합니다. 예를 들어, 프로세스가 Winbase.h에 선언된 Win32의 TerminateProcess 메서드에 의해 중단되는 경우가 있습니다. 또는 CLR이 소멸 메시지를 순서대로 전달하지 않고 관리되는 일부 스레드(백그라운드 스레드)를 중단하는 경우도 있습니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

참조

ICorProfilerCallback 인터페이스

ICorProfilerCallback::Initialize 메서드