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 svr
wartość . 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:
Modyfikując ustawienia w ExecutionContext celu pomijania przepływu dla poszczególnych wątków (zobacz SuppressFlowmetody , SuppressFlowi SuppressFlowWindowsIdentity ).
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:
W przypadku zarządzanych plików wykonywalnych należy ustawić
enabled
atrybut starszego< elementuImpersonationPolicy> natrue
wartość .W przypadku niezarządzanych interfejsów hostingu ustaw flagę
STARTUP_LEGACY_IMPERSONATION
w parametrzeflags
podczas wywoływaniaCorBindToRuntimeEx
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