Udostępnij za pośrednictwem


IHostTaskManager::CallNeedsHostHook — Metoda

Umożliwia hostowi określenie, czy środowisko uruchomieniowe języka wspólnego (CLR) może w tekście określić określone wywołanie funkcji niezarządzanej.

Składnia

HRESULT CallNeedsHostHook (  
    [in]  SIZE_T target,
    [out] BOOL   *pbCallNeedsHostHook  
);  

Parametry

target
[w] Adres w zamapowanym pliku wykonywalnego przenośnego (PE) funkcji niezarządzanej, która ma być wywoływana.

pbCallNeedsHostHook
[out] Wskaźnik do wartości logicznej, która wskazuje, czy host wymaga podłączenia wywołania.

Wartość zwracana

HRESULT Opis
S_OK CallNeedsHostHook zwrócono pomyślnie.
HOST_E_CLRNOTAVAILABLE ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić kodu zarządzanego ani pomyślnie przetworzyć wywołania.
HOST_E_TIMEOUT Upłynął limit czasu wywołania.
HOST_E_NOT_OWNER Obiekt wywołujący nie jest właścicielem blokady.
HOST_E_ABANDONED Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie.
E_FAIL Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE.

Uwagi

Aby ułatwić optymalizację wykonywania kodu, clR wykonuje analizę wywołania wywołania każdej platformy podczas kompilacji w celu określenia, czy wywołanie może być podkreślone. CallNeedsHostHook umożliwia hostowi zastąpienie tej decyzji, wymagając, aby wywołanie funkcji niezarządzanej było przyłączone. Jeśli host wymaga zaczepienia, środowisko uruchomieniowe nie w tekście wywołania.

Host zazwyczaj wymaga haka, w którym musi dostosować stan zmiennoprzecinkowa lub po otrzymaniu powiadomienia, że wywołanie wchodzi w stan, w którym host nie może śledzić żądań środowiska uruchomieniowego dla pamięci lub żadnych blokad. Gdy host wymaga przypinania wywołania, środowisko uruchomieniowe powiadamia o hoście przejść do i z kodu zarządzanego przy użyciu wywołań enterRuntime, LeaveRuntime, ReverseEnterRuntime i ReverseLeaveRuntime.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteki: Uwzględnione jako zasób w MSCorEE.dll

.NET Framework wersje: dostępne od wersji 2.0

Zobacz też