Sdílet prostřednictvím


CorBindToRuntime – funkce

Umožňuje nespravovaným hostitelům načíst modul CLR (Common Language Runtime) do procesu.

Tato funkce je v rozhraní .NET Framework 4 zastaralá.

Syntaxe

HRESULT CorBindToRuntime (  
    [in]  LPCWSTR     pwszVersion,
    [in]  LPCWSTR     pwszBuildFlavor,
    [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 prohlášením o zásadách, který určuje kompatibilitu s předchozími verzemi modulu CLR. Ve výchozím nastavení se počáteční 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 souboru předáním hodnoty STARTUP_LOADER_SAFEMODE parametru flags , jak je popsáno níže.

Pokud volající zadá hodnotu null pro pwszVersion, je načtena nejnovější verze modulu runtime. Předání hodnoty null neposkytuje 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 k načtení.

pwszBuildFlavor
[v] Řetězec, který určuje, zda se má načíst server nebo sestavení pracovní stanice modulu 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 nastavena 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 nastavená na svr. Pokud pwszBuildFlavor je ale nastavená hodnota svr a je zadáno souběžné uvolňování paměti (viz popis parametru flags ), načte se sestavení serveru.

rclsid
[v] Třídy CLSID coclass, která implementuje rozhraní ICorRuntimeHost nebo ICLRRuntimeHost . Podporované hodnoty jsou CLSID_CorRuntimeHost nebo CLSID_CLRRuntimeHost.

riid
[v] Požadovaného 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.

CorBindToRuntimeEx a CorBindToRuntime provést stejnou operaci, ale CorBindToRuntimeEx funkce umožňuje nastavit příznaky pro určení chování CLR.

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é podprocesu a tok přes libovolný asynchronní bod, ale ne přes hranice domény aplikace. Podobně WindowsIdentity objekt také prochází přes libovolný asynchronní bod. Proto aktuální zosobnění ve vlákně, pokud existuje, proudí také.

Tok můžete změnit dvěma způsoby:

  1. Úpravou ExecutionContext nastavení tak, aby se tok potlačil pro jednotlivá vlákna (viz SuppressFlowmetody , SuppressFlowa SuppressFlowWindowsIdentity ).

  2. 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žijete spravované spustitelné nebo nespravované hostitelské rozhraní:

    1. U spravovaných spustitelných souborů musíte nastavit enabled atribut elementu <legacyImpersonationPolicy> na truehodnotu .

    2. U nespravovaných hostitelských rozhraní nastavte STARTUP_LEGACY_IMPERSONATION příznak v parametru flags 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

Viz také