Methode IHostTaskManager::CallNeedsHostHook
Hiermee kan de host opgeven of de Common Language Runtime (CLR) de opgegeven aanroep naar een niet-beheerde functie inline kan uitvoeren.
Syntaxis
HRESULT CallNeedsHostHook (
[in] SIZE_T target,
[out] BOOL *pbCallNeedsHostHook
);
Parameters
target
[in] Het adres in het toegewezen PE-bestand (Portable Executable) van de onbeheerde functie die moet worden aangeroepen.
pbCallNeedsHostHook
[uit] Een verwijzing naar een Booleaanse waarde die aangeeft of de host vereist dat de aanroep wordt gekoppeld.
Retourwaarde
HRESULT | Beschrijving |
---|---|
S_OK | CallNeedsHostHook is geretourneerd. |
HOST_E_CLRNOTAVAILABLE | De CLR is niet geladen in een proces of de CLR bevindt zich in een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt. |
HOST_E_TIMEOUT | Er is een time-out opgetreden voor het gesprek. |
HOST_E_NOT_OWNER | De beller is niet de eigenaar van het vergrendelingsslot. |
HOST_E_ABANDONED | Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of vezel op wachtte. |
E_FAIL | Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE. |
Opmerkingen
Om de uitvoering van code te optimaliseren, voert de CLR een analyse uit van elk platformaanroep tijdens de compilatie om te bepalen of de aanroep kan worden inlined. CallNeedsHostHook
stelt de host in staat om die beslissing te overschrijven door te vereisen dat een aanroep van een niet-beheerde functie wordt gekoppeld. Als de host een hook vereist, voert de runtime de aanroep niet inline uit.
De host vereist doorgaans een hook waarbij de status van een drijvende komma moet worden aangepast, of wanneer een melding wordt ontvangen dat een aanroep een status krijgt waarin de host de aanvragen van de runtime voor geheugen of eventuele vergrendelingen niet kan volgen. Wanneer de host vereist dat de aanroep wordt gekoppeld, meldt de runtime de host van overgangen naar en van beheerde code met behulp van aanroepen naar EnterRuntime, LeaveRuntime, ReverseEnterRuntime en ReverseLeaveRuntime.
Vereisten
Platforms: Zie Systeemvereisten.
Header: MSCorEE.h
Bibliotheek: Opgenomen als een resource in MSCorEE.dll
.NET Framework versies: beschikbaar sinds 2.0