다음을 통해 공유


IHostTaskManager::LeaveRuntime 메서드

현재 실행 중인 작업이 CLR(공용 언어 런타임)을 벗어나 비관리형 코드를 입력하려고 함을 호스트에 알릴 수 있습니다.

중요

IHostTaskManager::EnterRuntime에 대한 해당 호출은 호스트에 현재 실행 중인 작업이 관리형 코드를 다시 입력하고 있음을 알릴 수 있습니다.

구문

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

매개 변수

target
[in] 호출할 비관리형 함수의 매핑된 이식 가능 실행 파일 내의 주소입니다.

Return Value

HRESULT 설명
S_OK LeaveRuntime가 성공적으로 반환되었습니다.
HOST_E_CLRNOTAVAILABLE CLR이 프로세스에 로드되지 않았거나 CLR이 관리 코드를 실행하거나 호출을 성공적으로 처리할 수 없는 상태입니다.
HOST_E_TIMEOUT 호출 시간이 초과되었습니다.
HOST_E_NOT_OWNER 호출자는 잠금을 소유하지 않습니다.
HOST_E_ABANDONED 차단된 스레드 또는 파이버가 이벤트를 기다리는 동안 이벤트가 취소되었습니다.
E_FAIL 알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 CLR은 더 이상 프로세스 내에서 사용할 수 없습니다. 호스팅 메서드에 대한 후속 호출은 HOST_E_CLRNOTAVAILABLE을 반환합니다.
E_OUTOFMEMORY 요청한 할당을 완료하는 데 사용할 수 있는 메모리가 부족합니다.

설명

비관리형 코드에서 호출 시퀀스를 중첩할 수 있습니다. 예를 들어 아래 목록은 LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime, IHostTaskManager::EnterRuntime에 대한 호출 시퀀스가 ​​호스트가 중첩된 레이어를 식별하도록 하는 가상 상황을 설명합니다.

작업 해당 메서드 호출
관리형 Visual Basic 실행 파일은 플랫폼 호출을 사용하여 C로 작성된 비관리형 함수를 호출합니다. IHostTaskManager::LeaveRuntime
비관리형 C 함수는 C#으로 작성된 관리형 DLL에서 메서드를 호출합니다. IHostTaskManager::ReverseEnterRuntime
관리형 C# 함수는 플랫폼 호출을 사용하여 C로 작성된 또 다른 비관리형 함수를 호출합니다. IHostTaskManager::LeaveRuntime
두 번째 비관리형 함수는 C# 함수에 실행을 반환합니다. IHostTaskManager::EnterRuntime
C# 함수는 첫 번째 비관리형 함수로 실행을 반환합니다. IHostTaskManager::ReverseLeaveRuntime
첫 번째 비관리형 함수는 Visual Basic 프로그램에 실행을 반환합니다. IHostTaskManager::EnterRuntime

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: MSCorEE.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 2.0부터 사용 가능

참고 항목