Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee kunnen niet-beheerde hosts de Common Language Runtime (CLR) in een proces laden.
Deze functie is afgeschaft in .NET Framework 4.
Syntaxis
HRESULT CorBindToRuntime (
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszBuildFlavor,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID FAR *ppv
);
Parameterwaarden
pwszVersion [in] Een tekenreeks die de versie van de CLR beschrijft die u wilt laden.
Een versienummer in .NET Framework bestaat uit vier onderdelen, gescheiden door punten: major.minor.build.revision. De tekenreeks die wordt doorgegeven als pwszVersion moet beginnen met het teken 'v' gevolgd door de eerste drie delen van het versienummer (bijvoorbeeld 'v1.0.1529').
Sommige versies van de CLR worden geïnstalleerd met een beleidsinstructie die compatibiliteit met eerdere versies van de CLR aangeeft. Standaard evalueert pwszVersion de opstart-shim op basis van beleidsinstructies en laadt de nieuwste versie van de runtime die compatibel is met de versie die wordt aangevraagd. Een host kan afdwingen dat de shim beleidsevaluatie overslaat en de exacte versie laadt die is pwszVersion opgegeven door een waarde voor STARTUP_LOADER_SAFEMODE de flags parameter door te geven, zoals hieronder wordt beschreven.
Als de aanroeper null opgeeft voor pwszVersion, wordt de nieuwste versie van de runtime geladen. Het doorgeven van null geeft de host geen controle over welke versie van de runtime wordt geladen. Hoewel deze benadering in sommige scenario's geschikt kan zijn, wordt het sterk aanbevolen dat de host een specifieke versie levert die moet worden geladen.
pwszBuildFlavor [in] Een tekenreeks die aangeeft of de server of het werkstation-build van de CLR moet worden geladen. Geldige waarden zijn svr en wks. De serverbuild is geoptimaliseerd om te profiteren van meerdere processors voor garbagecollections en de build van het werkstation is geoptimaliseerd voor clienttoepassingen die worden uitgevoerd op een computer met één processor.
Als pwszBuildFlavor dit is ingesteld op null, wordt de build van het werkstation geladen. Wanneer de computer met één processor wordt uitgevoerd, wordt de build van het werkstation altijd geladen, zelfs als pwszBuildFlavor dit is ingesteld op svr.
pwszBuildFlavor Als echter is ingesteld op svr en gelijktijdige garbagecollection is opgegeven (zie de beschrijving van de flags parameter), wordt de serverbuild geladen.
rclsid [in] De CLSID coklasse die de ICorRuntimeHost of de ICLRRuntimeHost-interface implementeert. Ondersteunde waarden worden CLSID_CorRuntimeHost of CLSID_CLRRuntimeHost.
riid [in] De IID aangevraagde interface van rclsid. Ondersteunde waarden zijn IID_ICorRuntimeHost of IID_ICLRRuntimeHost.
ppv [uit] De geretourneerde interface-aanwijzer naar riid.
Opmerkingen
Als pwszVersion er een runtimeversie wordt opgegeven die niet bestaat, CorBindToRuntimeEx wordt een HRESULT-waarde van CLR_E_SHIM_RUNTIMELOAD geretourneerd.
CorBindToRuntimeEx en CorBindToRuntime voer dezelfde bewerking uit, maar met de CorBindToRuntimeEx functie kunt u vlaggen instellen om het gedrag van de CLR op te geven.
Uitvoeringscontext en stroom van Windows-identiteit
In versie 1 van de CLR loopt het WindowsIdentity object niet over asynchrone punten, zoals nieuwe threads, threadpools of timer callbacks. In versie 2.0 van de CLR verpakt een ExecutionContext object enkele informatie over de momenteel uitgevoerde thread en wordt deze over een asynchroon punt gestroomd, maar niet over grenzen van toepassingsdomeinen. Op dezelfde manier loopt het WindowsIdentity object ook over een asynchroon punt. Daarom stroomt de huidige imitatie op de thread, indien van toepassing, ook.
U kunt de stroom op twee manieren wijzigen:
Door de ExecutionContext instellingen te wijzigen om de stroom per thread te onderdrukken (zie de SuppressFlow, SuppressFlowen SuppressFlowWindowsIdentity methoden).
Door de standaardmodus van het proces te wijzigen in de compatibiliteitsmodus versie 1, waarbij het WindowsIdentity object niet over een asynchroon punt stroomt, ongeacht de ExecutionContext instellingen in de huidige thread. Hoe u de standaardmodus wijzigt, is afhankelijk van of u een beheerd uitvoerbaar bestand of een niet-beheerde hostinginterface gebruikt om de CLR te laden:
Voor beheerde uitvoerbare bestanden moet u het
enabledkenmerk van het <legacyImpersonationPolicy-element> instellen optrue.Voor niet-beheerde hostinginterfaces stelt u de
STARTUP_LEGACY_IMPERSONATIONvlag in deflagsparameter in bij het aanroepen van deCorBindToRuntimeExfunctie.
De compatibiliteitsmodus versie 1 is van toepassing op het hele proces en op alle toepassingsdomeinen in het proces.
Requirements
Platformen: Zie Systeemvereisten.
Rubriek: MSCorEE.h
Bibliotheek: MSCorEE.dll
.NET Framework-versies: beschikbaar sinds 1.0