IHostTaskManager::CallNeedsHostHook – metoda
Umožňuje hostiteli určit, zda modul CLR (Common Language Runtime) může vložit zadané volání nespravované funkce.
Syntaxe
HRESULT CallNeedsHostHook (
[in] SIZE_T target,
[out] BOOL *pbCallNeedsHostHook
);
Parametry
target
[v] Adresa v mapovaném souboru přenosného spustitelného souboru (PE) nespravované funkce, která se má volat.
pbCallNeedsHostHook
[out] Ukazatel na logickou hodnotu, který označuje, jestli hostitel vyžaduje připojení volání.
Návratová hodnota
HRESULT | Description |
---|---|
S_OK | CallNeedsHostHook úspěšně vráceno. |
HOST_E_CLRNOTAVAILABLE | ClR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže spustit spravovaný kód nebo úspěšně zpracovat volání. |
HOST_E_TIMEOUT | Časový limit hovoru vypršel. |
HOST_E_NOT_OWNER | Volající zámek nevlastní. |
HOST_E_ABANDONED | Událost byla zrušena, když na ni čekalo blokované vlákno nebo vlákno. |
E_FAIL | Došlo k neznámému katastrofickému selhání. Když metoda vrátí E_FAIL, CLR už není v rámci procesu použitelný. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE. |
Poznámky
Aby bylo možné optimalizovat spouštění kódu, modul CLR provádí během kompilace analýzu volání volání jednotlivých platforem, aby zjistil, jestli je možné volání vnořit. CallNeedsHostHook
umožňuje hostiteli přepsat toto rozhodnutí tím, že vyžaduje připojení volání nespravované funkce. Pokud hostitel vyžaduje háček, modul runtime nezapojí volání.
Hostitel obvykle vyžaduje háček, kde musí upravit stav s plovoucí desetinou čárkou, nebo po přijetí oznámení, že volání vstupuje do stavu, kdy hostitel nemůže sledovat požadavky modulu runtime na paměť nebo přijaté zámky. Když hostitel vyžaduje připojení volání, modul runtime upozorní hostitele na přechody do a z spravovaného kódu pomocí volání EnterRuntime, LeaveRuntime, ReverseEnterRuntime a ReverseLeaveRuntime.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: MSCorEE.h
Knihovny: Zahrnuto jako prostředek v MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 2.0