Udostępnij za pośrednictwem


CorBindToRuntime — Funkcja

Umożliwia hostom niezarządzanym ładowanie środowiska uruchomieniowego języka wspólnego (CLR) do procesu.

Ta funkcja została uznana za przestarzałą w .NET Framework 4.

Składnia

HRESULT CorBindToRuntime (  
    [in]  LPCWSTR     pwszVersion,
    [in]  LPCWSTR     pwszBuildFlavor,
    [in]  REFCLSID    rclsid,
    [in]  REFIID      riid,
    [out] LPVOID FAR  *ppv  
);  

Parametry

pwszVersion
[in] Ciąg opisujący wersję środowiska CLR, którą chcesz załadować.

Numer wersji w .NET Framework składa się z czterech części rozdzielonych kropkami: główna.pomocnicza.kompilacja.poprawka. Ciąg przekazany jako pwszVersion musi zaczynać się od znaku "v", po którym następuje pierwsze trzy części numeru wersji (na przykład "v1.0.1529").

Niektóre wersje środowiska CLR są instalowane z instrukcją zasad, która określa zgodność z poprzednimi wersjami środowiska CLR. Domyślnie podkładka uruchamiania ocenia instrukcje pwszVersion zasad i ładuje najnowszą wersję środowiska uruchomieniowego zgodnego z żądaną wersją. Host może wymusić pominięcie oceny zasad i załadowanie dokładnej wersji określonej w pwszVersion pliku przez przekazanie wartości STARTUP_LOADER_SAFEMODE dla parametru flags , zgodnie z poniższym opisem.

Jeśli obiekt wywołujący określa wartość null dla pwszVersion, zostanie załadowana najnowsza wersja środowiska uruchomieniowego. Przekazywanie wartości null nie daje hostowi żadnej kontroli nad wersją środowiska uruchomieniowego. Chociaż takie podejście może być odpowiednie w niektórych scenariuszach, zdecydowanie zaleca się, aby host dostarczał określoną wersję do załadowania.

pwszBuildFlavor
[in] Ciąg określający, czy należy załadować serwer, czy stację roboczą kompilacji środowiska CLR. Prawidłowe wartości to svr i wks. Kompilacja serwera jest zoptymalizowana pod kątem korzystania z wielu procesorów na potrzeby odzyskiwania pamięci, a kompilacja stacji roboczej jest zoptymalizowana pod kątem aplikacji klienckich działających na maszynie z jednym procesorem.

Jeśli pwszBuildFlavor parametr ma wartość null, zostanie załadowana kompilacja stacji roboczej. W przypadku uruchamiania na maszynie z jednym procesorem kompilacja stacji roboczej jest zawsze ładowana, nawet jeśli pwszBuildFlavor jest ustawiona na svrwartość . Jeśli pwszBuildFlavor jednak ustawiono wartość svr i określono współbieżne odzyskiwanie pamięci (zobacz opis parametru flags ), zostanie załadowana kompilacja serwera.

rclsid
[in] Klasa CLSID coclass, która implementuje interfejs ICorRuntimeHost lub ICLRRuntimeHost . Obsługiwane wartości to CLSID_CorRuntimeHost lub CLSID_CLRRuntimeHost.

riid
[in] Element IID żądanego interfejsu z klasy rclsid. Obsługiwane wartości to IID_ICorRuntimeHost lub IID_ICLRRuntimeHost.

ppv
[out] Zwrócony wskaźnik interfejsu na riid.

Uwagi

Jeśli pwszVersion określa wersję środowiska uruchomieniowego, która nie istnieje, CorBindToRuntimeEx zwraca wartość HRESULT CLR_E_SHIM_RUNTIMELOAD.

CorBindToRuntimeEx i CorBindToRuntime wykonuje tę samą operację, ale CorBindToRuntimeEx funkcja umożliwia ustawienie flag w celu określenia zachowania środowiska CLR.

Kontekst wykonywania i przepływ tożsamości systemu Windows

W wersji 1 środowiska CLR obiekt nie przepływa między punktami asynchronicznymi, WindowsIdentity takimi jak nowe wątki, pule wątków lub wywołania zwrotne czasomierza. W wersji 2.0 środowiska CLR ExecutionContext obiekt opakowuje niektóre informacje o aktualnie wykonywanym wątku i przepływa go w dowolnym punkcie asynchronicznym, ale nie poza granicami domeny aplikacji. WindowsIdentity Podobnie obiekt przepływa również w dowolnym punkcie asynchronicznym. W związku z tym bieżąca personifikacja wątku, jeśli istnieje, również przepływa.

Przepływ można zmienić na dwa sposoby:

  1. Modyfikując ustawienia w ExecutionContext celu pomijania przepływu dla poszczególnych wątków (zobacz SuppressFlowmetody , SuppressFlowi SuppressFlowWindowsIdentity ).

  2. Zmieniając tryb domyślny procesu na tryb zgodności w wersji 1, w którym WindowsIdentity obiekt nie przepływa w żadnym punkcie asynchronicznym, niezależnie od ExecutionContext ustawień bieżącego wątku. Zmiana trybu domyślnego zależy od tego, czy do załadowania środowiska CLR jest używany zarządzany plik wykonywalny, czy niezarządzany interfejs hostingu:

    1. W przypadku zarządzanych plików wykonywalnych należy ustawić enabled atrybut starszego< elementuImpersonationPolicy> na truewartość .

    2. W przypadku niezarządzanych interfejsów hostingu ustaw flagę STARTUP_LEGACY_IMPERSONATION w parametrze flags podczas wywoływania CorBindToRuntimeEx funkcji.

    Tryb zgodności w wersji 1 dotyczy całego procesu i wszystkich domen aplikacji w procesie.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteka: MSCorEE.dll

wersje .NET Framework: dostępne od wersji 1.0

Zobacz też