CorBindToRuntimeEx – funkce
Umožňuje nespravovaným hostitelům načíst modul CLR (Common Language Runtime) do procesu. CorBindToRuntime a CorBindToRuntimeEx
funkce provádějí stejnou operaci, ale CorBindToRuntimeEx
funkce vám umožní nastavit příznaky pro určení chování CLR.
Tato funkce je v rozhraní .NET Framework 4 zastaralá.
Tato funkce přebírá sadu parametrů, které hostiteli umožňují provádět následující akce:
Zadejte verzi modulu runtime, který se načte.
Určete, jestli se má načíst sestavení serveru nebo pracovní stanice.
Určuje, jestli se má provést souběžné uvolňování paměti nebo nesouběrné uvolňování paměti.
Poznámka
Souběžné uvolňování paměti není podporováno v aplikacích s emulátorem WOW64 x86 v 64bitových systémech, které implementují architekturu Intel Itanium (dříve označované jako IA-64). Další informace o používání wow64 v 64bitových systémech Windows najdete v tématu Spouštění 32bitových aplikací.
Určuje, jestli se sestavení načítají jako neutrální z domény.
Získejte ukazatel rozhraní na ICorRuntimeHost , který lze použít k nastavení dalších možností pro konfiguraci instance CLR před jeho spuštěním.
Syntaxe
HRESULT CorBindToRuntimeEx (
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszBuildFlavor,
[in] DWORD startupFlags,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID FAR *ppv
);
Parametry
pwszVersion
[v] Řetězec popisující verzi modulu CLR, který chcete načíst.
Číslo verze v rozhraní .NET Framework se skládá ze čtyř částí oddělených tečkami: major.minor.build.revision. Řetězec předaný jako pwszVersion
musí začínat znakem "v", za kterým následují první tři části čísla verze (například "v1.0.1529").
Některé verze modulu CLR se instalují s příkazem zásad, který určuje kompatibilitu s předchozími verzemi modulu CLR. Ve výchozím nastavení se spouštěcí shim vyhodnotí pwszVersion
podle příkazů zásad a načte nejnovější verzi modulu runtime, která je kompatibilní s požadovanou verzí. Hostitel může vynutit vynechání vyhodnocení zásad a načtení přesné verze zadané v pwszVersion
parametru předáním hodnoty parametru STARTUP_LOADER_SAFEMODE
startupFlags
, jak je popsáno níže.
Pokud volající zadá hodnotu null pro pwszVersion
, CorBindToRuntimeEx
identifikuje sadu nainstalovaných modulů runtime, jejichž čísla verzí jsou nižší než modul runtime rozhraní .NET Framework 4, a načte nejnovější verzi modulu runtime z této sady. Nenačte rozhraní .NET Framework 4 nebo novější a pokud není nainstalovaná žádná starší verze, selže. Všimněte si, že předání hodnoty null nedává hostiteli žádnou kontrolu nad tím, která verze modulu runtime je načtena. I když tento přístup může být v některých scénářích vhodný, důrazně doporučujeme, aby hostitel dodal konkrétní verzi pro načtení.
pwszBuildFlavor
[v] Řetězec, který určuje, zda se má načíst server nebo sestavení pracovní stanice CLR. Platné hodnoty jsou svr
a wks
. Sestavení serveru je optimalizované tak, aby využívalo více procesorů pro uvolňování paměti, a sestavení pracovní stanice je optimalizované pro klientské aplikace spuštěné na počítači s jedním procesorem.
Pokud pwszBuildFlavor
je nastavená hodnota null, sestavení pracovní stanice se načte. Při spuštění na počítači s jedním procesorem se sestavení pracovní stanice vždy načte, i když pwszBuildFlavor
je nastaveno na svr
hodnotu . Pokud pwszBuildFlavor
je však nastavena na svr
a je zadáno souběžné uvolňování paměti (viz popis parametru startupFlags
), sestavení serveru se načte.
startupFlags
[v] Kombinace hodnot STARTUP_FLAGS výčtu. Tyto příznaky řídí souběžné uvolňování paměti, kód neutrální z domény a chování parametru pwszVersion
. Výchozí hodnota je jedna doména, pokud není nastavený žádný příznak. Následující hodnoty jsou platné:
STARTUP_CONCURRENT_GC
STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN
STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN
STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST
STARTUP_LOADER_SAFEMODE
STARTUP_LOADER_SETPREFERENCE
STARTUP_SERVER_GC
STARTUP_HOARD_GC_VM
STARTUP_SINGLE_VERSION_HOSTING_INTERFACE
STARTUP_LEGACY_IMPERSONATION
STARTUP_DISABLE_COMMITTHREADSTACK
STARTUP_ALWAYSFLOW_IMPERSONATION
Popisy těchto příznaků najdete ve výčtu STARTUP_FLAGS .
rclsid
[v] The CLSID
coclass, který implementuje buď ICorRuntimeHost nebo ICLRRuntimeHost rozhraní. Podporované hodnoty jsou CLSID_CorRuntimeHost nebo CLSID_CLRRuntimeHost.
riid
[v] Požadované IID
rozhraní z rclsid
. Podporované hodnoty jsou IID_ICorRuntimeHost nebo IID_ICLRRuntimeHost.
ppv
[out] Vrácený ukazatel rozhraní na riid
.
Poznámky
Pokud pwszVersion
určuje verzi modulu runtime, která neexistuje, CorBindToRuntimeEx
vrátí hodnotu HRESULT CLR_E_SHIM_RUNTIMELOAD.
Kontext spuštění a tok identity Windows
Ve verzi 1 modulu CLR objekt neprotéká asynchronními body, WindowsIdentity jako jsou nová vlákna, fondy vláken nebo zpětná volání časovače. Ve verzi 2.0 modulu CLR ExecutionContext objekt zabalí některé informace o aktuálně spuštěných vláknech a tok přes libovolný asynchronní bod, ale ne přes hranice domény aplikace. Podobně WindowsIdentity objekt také prochází libovolným asynchronním bodem. Proto aktuální zosobnění ve vlákně, pokud existuje, tok také.
Tok můžete změnit dvěma způsoby:
Úpravou ExecutionContext nastavení potlačte tok na základě jednotlivých vláken (viz SuppressFlowmetody , SuppressFlowa SuppressFlowWindowsIdentity ).
Změnou výchozího režimu procesu na režim kompatibility verze 1, kde WindowsIdentity objekt neprotéká přes žádný asynchronní bod bez ExecutionContext ohledu na nastavení v aktuálním vlákně. Způsob změny výchozího režimu závisí na tom, jestli k načtení modulu CLR používáte spravované spustitelné nebo nespravované hostitelské rozhraní:
U spravovaných spustitelných souborů je nutné nastavit
enabled
atribut elementu< legacyImpersonationPolicy> natrue
hodnotu .U nespravovaných hostitelských rozhraní nastavte
STARTUP_LEGACY_IMPERSONATION
příznak v parametrustartupFlags
při voláníCorBindToRuntimeEx
funkce.
Režim kompatibility verze 1 se vztahuje na celý proces a na všechny domény aplikace v procesu.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: MSCorEE.h
Knihovna: MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 1.0