IHostTaskManager::LeaveRuntime 方法
告知主應用程式,目前正在執行的工作即將要離開 Common Language Runtime (CLR) 並進入 Unmanaged 程式碼。
重要事項 |
---|
IHostTaskManager::EnterRuntime 的對應呼叫會告知主應用程式,目前正在執行的工作正要重新進入 Managed 程式碼。 |
HRESULT LeaveRuntime (
[in] SIZE_T target
);
參數
- target
[in] 在要呼叫的 Unmanaged 函式之對應可移植執行檔內的位址。
傳回值
HRESULT |
描述 |
---|---|
S_OK |
LeaveRuntime 已成功傳回。 |
HOST_E_CLRNOTAVAILABLE |
CLR 尚未載入至處理序中,或者此 CLR 目前的狀態無法執行 Managed 程式碼或成功處理呼叫。 |
HOST_E_TIMEOUT |
呼叫已逾時。 |
HOST_E_NOT_OWNER |
呼叫端不具備鎖定功能。 |
HOST_E_ABANDONED |
已封鎖執行緒或 Fiber 在等候事件時,該事件已遭取消。 |
E_FAIL |
發生未知的重大錯誤。 當方法傳回 E_FAIL 時,便無法在處理序內使用 CLR。 對裝載方法的後續呼叫會傳回 HOST_E_CLRNOTAVAILABLE。 |
E_OUTOFMEMORY |
可用的記憶體不足,無法完成所要求的配置。 |
備註
與 Unmanaged 程式碼之間往來的呼叫序列可以是巢狀結構。 例如,下列清單將描述一個假設性情況,其中對 LeaveRuntime, IHostTaskManager::ReverseEnterRuntime、IHostTaskManager::ReverseLeaveRuntime 和 IHostTaskManager::EnterRuntime 呼叫的序列允許主應用程式識別巢狀層。
動作 |
對應的方法呼叫 |
---|---|
Managed Visual Basic 的可執行檔會使用平台叫用,呼叫以 C 撰寫的 Unmanaged 函式。 |
IHostTaskManager::LeaveRuntime |
Unmanaged C 函式會呼叫 Managed DLL 中以 C# 撰寫的方法。 |
IHostTaskManager::ReverseEnterRuntime |
Managed C# 函式也會利用平台叫用,呼叫另一個以 C 撰寫的 Unmanaged 函式。 |
IHostTaskManager::LeaveRuntime |
第二個 Unmanaged 函式會將執行傳回 C# 函式。 |
IHostTaskManager::EnterRuntime |
C# 函式會將執行傳回第一個 Unmanaged 函式。 |
IHostTaskManager::ReverseLeaveRuntime |
第一個 Unmanaged 函式會將執行傳回 Visual Basic 程式。 |
IHostTaskManager::EnterRuntime |
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**MSCorEE.h
程式庫:包含做為 MSCorEE.dll 中的資源
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0