ISurrogate::FreeSurrogate 메서드(objidlbase.h)
DLL 서버를 언로드합니다.
구문
HRESULT FreeSurrogate();
반환 값
이 메서드는 표준 반환 값 E_UNEXPECTED, E_FAIL 및 S_OK 반환할 수 있습니다.
설명
COM은 서로게이트 프로세스에서 실행되는 DLL 서버가 더 이상 없는 경우 FreeSurrogate 를 호출합니다. FreeSurrogate가 호출되면 메서드는 서로게이트에 등록된 모든 클래스 팩터리를 올바르게 해지한 다음 서로게이트 프로세스가 종료되도록 해야 합니다.
서로게이트 프로세스는 CoFreeUnusedLibraries 함수를 주기적으로 호출하여 더 이상 사용되지 않는 DLL 서버를 언로드해야 합니다. 서로게이트 프로세스는 일반적으로 클라이언트의 책임인 이 책임을 맡습니다. CoFreeUnusedLibraries는 로드된모든 DLL 서버에서 DllCanUnloadNow 함수를 호출합니다. CoFreeUnusedLibraries는 DLL 서버에서 DllCanUnloadNow의 존재 및 적절한 구현에 따라 달라지므로 언로드해야 하는 모든 DLL 서버를 언로드하는 것은 보장되지 않습니다. 모든 서버가 DllCanUnloadNow를 구현하는 것은 아니며 이 함수는 자유 스레드 DLL에 대해 신뢰할 수 없습니다. 또한 서로게이트는 모든 DLL 서버가 사라졌을 때 알림을 받는 방법이 없습니다. 그러나 COM은 모든 DLL 서버가 언로드된 시기를 확인할 수 있으며 FreeSurrogate 메서드를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | objidlbase.h(ObjIdl.h 포함) |