Share via


ISurrogate::FreeSurrogate 메서드(objidlbase.h)

DLL 서버를 언로드합니다.

구문

HRESULT FreeSurrogate();

반환 값

이 메서드는 표준 반환 값 E_UNEXPECTED, E_FAIL 및 S_OK 반환할 수 있습니다.

설명

COM은 서로게이트 프로세스에서 실행되는 DLL 서버가 더 이상 없는 경우 FreeSurrogate 를 호출합니다. FreeSurrogate가 호출되면 메서드는 서로게이트에 등록된 모든 클래스 팩터리를 올바르게 해지한 다음 서로게이트 프로세스가 종료되도록 해야 합니다.

서로게이트 프로세스는 CoFreeUnusedLibraries 함수를 주기적으로 호출하여 더 이상 사용되지 않는 DLL 서버를 언로드해야 합니다. 서로게이트 프로세스는 일반적으로 클라이언트의 책임인 이 책임을 맡습니다. CoFreeUnusedLibraries는 로드된모든 DLL 서버에서 DllCanUnloadNow 함수를 호출합니다. CoFreeUnusedLibrariesDLL 서버에서 DllCanUnloadNow의 존재 및 적절한 구현에 따라 달라지므로 언로드해야 하는 모든 DLL 서버를 언로드하는 것은 보장되지 않습니다. 모든 서버가 DllCanUnloadNow를 구현하는 것은 아니며 이 함수는 자유 스레드 DLL에 대해 신뢰할 수 없습니다. 또한 서로게이트는 모든 DLL 서버가 사라졌을 때 알림을 받는 방법이 없습니다. 그러나 COM은 모든 DLL 서버가 언로드된 시기를 확인할 수 있으며 FreeSurrogate 메서드를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objidlbase.h(ObjIdl.h 포함)

추가 정보

DllSurrogate

ISurrogate

사용자 지정 서로게이트 작성