IHostTaskManager::CallNeedsHostHook 方法
可讓主機指定通用語言執行平台 (CLR) 是否可以內嵌對非受控函式的指定呼叫。
語法
HRESULT CallNeedsHostHook (
[in] SIZE_T target,
[out] BOOL *pbCallNeedsHostHook
);
參數
target
[in] 要呼叫之非受控函式對應的可攜式可執行檔 (PE) 檔案內的位址。
pbCallNeedsHostHook
[out] 布林值的指標,指出主機是否要求攔截呼叫。
傳回值
HRESULT | 描述 |
---|---|
S_OK | CallNeedsHostHook 已成功傳回。 |
HOST_E_CLRNOTAVAILABLE | CLR 尚未載入處理序,或 CLR 處於無法執行受控程式碼或成功處理呼叫的狀態。 |
HOST_E_TIMEOUT | 呼叫逾時。 |
HOST_E_NOT_OWNER | 呼叫端未擁有鎖定。 |
HOST_E_ABANDONED | 封鎖的執行緒或 Fiber 在其上等候時,事件遭到取消。 |
E_FAIL | 發生未知的重大失敗。 如果方法傳回 E_FAIL,則 CLR 就無法再用於處理序。 後續對裝載方法發出的呼叫會傳回 HOST_E_CLRNOTAVAILABLE。 |
備註
為了協助將程式碼執行最佳化,CLR 會在編譯期間執行每個平台叫用呼叫的分析,以判斷是否可以內嵌呼叫。 CallNeedsHostHook
可讓主機藉由要求攔截對非受控函式的呼叫來覆寫該決策。 如果主機需要勾點,則執行階段不會內嵌呼叫。
主機通常需要勾點,在其中必須調整浮點狀態,或在收到通知,得知呼叫正要進入主機無法追蹤執行階段對記憶體的要求或任何所擷取鎖定的狀態。 當主機要求攔截呼叫時,執行階段會使用對 EnterRuntime、LeaveRuntime、ReverseEnterRuntime 和 ReverseLeaveRuntime 的呼叫,通知主機有關受控程式碼的雙向轉換。
規格需求
平台:請參閱系統需求。
標題: MSCorEE.h
程式庫:包含作為 MSCorEE.dll 中的資源
.NET Framework版本:自 2.0 起可用