Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 umožňuje 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 provádí souběžné uvolňování paměti nebo nesouběrné uvolňování paměti.
Poznámka:
Souběžné uvolňování paměti se nepodporuje v aplikacích s emulátorem WOW64 x86 v 64bitových systémech, které implementují architekturu Intel Itanium (dříve označovanou jako IA-64). Další informace o používání WOW64 v 64bitových systémech Windows naleznete v tématu Spouštění 32bitových aplikací.
Určuje, zda jsou sestavení načtena jako neutrální doména.
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, kterou 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ý tak, jak pwszVersion musí začínat znakem "v", za kterým následuje první tři části čísla verze (například "v1.0.1529").
Některé verze modulu CLR se instalují s prohlášením zásad, které určuje kompatibilitu s předchozími verzemi modulu CLR. Spouštěcí přecházeč pwszVersion ve výchozím nastavení vyhodnotí příkazy 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é pwszVersion předáním hodnoty STARTUP_LOADER_SAFEMODE parametru startupFlags , jak je popsáno níže.
Pokud volající určuje hodnotu null pro pwszVersion, CorBindToRuntimeEx identifikuje sadu nainstalovaných modulů runtime, jejichž čísla verzí jsou nižší než modul runtime .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 selže, pokud není nainstalovaná žádná starší verze. Všimněte si, že předání hodnoty null dává hostiteli žádnou kontrolu nad tím, jakou verzi modulu runtime se načte. I když tento přístup může být v některých scénářích vhodný, důrazně doporučujeme, aby hostitel doručil konkrétní verzi, která se má načíst.
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. Pokud pwszBuildFlavor je ale nastavená svr možnost souběžného uvolňování paměti (viz popis parametru startupFlags ), načte se sestavení serveru.
startupFlags [v] Kombinace hodnot STARTUP_FLAGS výčtu. Tyto příznaky řídí souběžné uvolňování paměti, doménově neutrální kód a chování parametru pwszVersion . Výchozí hodnota je jedna doména, pokud není nastaven žádný příznak. Platné jsou následující hodnoty:
STARTUP_CONCURRENT_GCSTARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAINSTARTUP_LOADER_OPTIMIZATION_MULTI_DOMAINSTARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOSTSTARTUP_LOADER_SAFEMODESTARTUP_LOADER_SETPREFERENCESTARTUP_SERVER_GCSTARTUP_HOARD_GC_VMSTARTUP_SINGLE_VERSION_HOSTING_INTERFACESTARTUP_LEGACY_IMPERSONATIONSTARTUP_DISABLE_COMMITTHREADSTACKSTARTUP_ALWAYSFLOW_IMPERSONATION
Popisy těchto příznaků najdete v STARTUP_FLAGS výčtu.
rclsid [v] Třída CLSID coclass, která implementuje buď ICorRuntimeHost nebo ICLRRuntimeHost rozhraní. Podporované hodnoty jsou CLSID_CorRuntimeHost nebo CLSID_CLRRuntimeHost.
riid [v] Požadované IID rozhraní od rclsid. Podporované hodnoty jsou IID_ICorRuntimeHost nebo IID_ICLRRuntimeHost.
ppv [ven] 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 systému Windows
Ve verzi 1 CLR objekt neprotéká mezi 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é vlákně a toky přes libovolný asynchronní bod, ale ne přes hranice domény aplikace. Podobně objekt WindowsIdentity také proudí napříč libovolným asynchronním bodem. Aktuální zosobnění ve vlákně proto také proudí.
Tok můžete změnit dvěma způsoby:
Úpravou ExecutionContext nastavení pro potlačení toku na základě vlákna (viz SuppressFlow, SuppressFlowa SuppressFlowWindowsIdentity metody).
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 ke načtení modulu CLR použijete spravované spustitelné nebo nespravované hostitelské rozhraní:
U spravovaných spustitelných souborů je nutné nastavit
enabledatribut legacyImpersonationPolicy> element na .<trueU nespravovaných hostitelských rozhraní nastavte
STARTUP_LEGACY_IMPERSONATIONpříznak v parametrustartupFlagsCorBindToRuntimeExpři volání 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: Dostupné od verze 1.0