Funzione CorBindToRuntimeExCorBindToRuntimeEx Function

Consente l'host non gestiti di caricare common language runtime (CLR) in un processo.Enables unmanaged hosts to load the common language runtime (CLR) into a process. Il CorBindToRuntime e CorBindToRuntimeEx funzioni eseguono la stessa operazione, ma la CorBindToRuntimeEx funzione consente di impostare flag per specificare il comportamento di CLR.The CorBindToRuntime and CorBindToRuntimeEx functions perform the same operation, but the CorBindToRuntimeEx function allows you to set flags to specify the behavior of the CLR.

Questa funzione è stata deprecata nel .NET Framework 4.NET Framework 4.This function has been deprecated in the .NET Framework 4.NET Framework 4.

Questa funzione accetta un set di parametri che consentono a un host eseguire le operazioni seguenti:This function takes a set of parameters that allow a host to do the following:

  • Specificare la versione del runtime che verrà caricato.Specify the version of the runtime that will be loaded.

  • Indicare se la compilazione di server o workstation deve essere caricata.Indicate whether the server or workstation build should be loaded.

  • Controllare se garbage collection simultanea o non simultanea della garbage collection viene eseguita.Control whether concurrent garbage collection or non-concurrent garbage collection is done.

Nota

Garbage collection simultanea non è supportata nelle applicazioni in esecuzione WOW64 x86 emulatore nei sistemi a 64 bit che implementano l'architettura Intel Itanium (IA-64 noto).Concurrent garbage collection is not supported in applications running the WOW64 x86 emulator on 64-bit systems that implement the Intel Itanium architecture (formerly called IA-64). Per ulteriori informazioni sull'utilizzo di WOW64 nei sistemi Windows a 64 bit, vedere applicazioni in esecuzione a 32 bit.For more information about using WOW64 on 64-bit Windows systems, see Running 32-bit Applications.

  • Controllare se gli assembly vengono caricati come indipendenti dal dominio.Control whether assemblies are loaded as domain-neutral.

  • Ottenere un puntatore a interfaccia a un ICorRuntimeHost che può essere utilizzato per impostare opzioni aggiuntive per la configurazione di un'istanza di CLR prima che venga avviato.Obtain an interface pointer to an ICorRuntimeHost that can be used to set additional options for configuring an instance of the CLR before it is started.

SintassiSyntax

HRESULT CorBindToRuntimeEx (  
    [in]  LPCWSTR      pwszVersion,   
    [in]  LPCWSTR      pwszBuildFlavor,   
    [in]  DWORD        startupFlags,   
    [in]  REFCLSID     rclsid,   
    [in]  REFIID       riid,   
    [out] LPVOID FAR  *ppv  
);  

ParametriParameters

pwszVersion
[in] Stringa che descrive la versione di CLR a cui si desidera caricare.[in] A string describing the version of the CLR you want to load.

Un numero di versione di .NET Framework è costituito da quattro parti separate da punti: revisione.A version number in the .NET Framework consists of four parts separated by periods: major.minor.build.revision. La stringa passata come pwszVersion deve iniziare con il carattere "v" seguito dalle prime tre parti del numero di versione (ad esempio, "v 1.0.1529").The string passed as pwszVersion must start with the character "v" followed by the first three parts of the version number (for example, "v1.0.1529").

Alcune versioni di Common Language Runtime vengono installati con un'istruzione di criteri che specifica la compatibilità con le versioni precedenti di CLR.Some versions of the CLR are installed with a policy statement that specifies compatibility with previous versions of the CLR. Per impostazione predefinita, valuta lo shim di avvio pwszVersion contro istruzioni dei criteri e carica la versione più recente del runtime che è compatibile con la versione richiesta.By default, the startup shim evaluates pwszVersion against policy statements and loads the latest version of the runtime that is compatible with the version being requested. Un host può imporre allo shim di ignorare la valutazione dei criteri e caricare l'esatta versione specificata pwszVersion passando un valore di STARTUP_LOADER_SAFEMODE per il startupFlags parametro, come descritto di seguito.A host can force the shim to skip policy evaluation and load the exact version specified in pwszVersion by passing a value of STARTUP_LOADER_SAFEMODE for the startupFlags parameter, as described below.

Se il chiamante specifica null per pwszVersion, CorBindToRuntimeEx identifica il set di runtime installato con numeri di versione sono inferiori al runtime di .NET Framework 4 e carica la versione più recente del runtime da tale set.If the caller specifies null for pwszVersion, CorBindToRuntimeEx identifies the set of installed runtimes whose version numbers are lower than the .NET Framework 4 runtime, and loads the latest version of the runtime from that set. Non viene caricata di .NET Framework 4 o versioni successive e non riesce se non è installata alcuna versione precedente.It won't load the .NET Framework 4 or later, and fails if no earlier version is installed. Si noti che il passaggio di null non consente all'host di alcun controllo sulla quale versione del runtime viene caricata.Note that passing null gives the host no control over which version of the runtime is loaded. Sebbene questo approccio può risultare appropriato in alcuni scenari, è consigliabile che l'host fornisca una specifica versione da caricare.Although this approach may be appropriate in some scenarios, it is strongly recommended that the host supply a specific version to load.

pwszBuildFlavor
[in] Stringa che specifica se caricare il server o la compilazione di workstation di CLR.[in] A string that specifies whether to load the server or the workstation build of the CLR. I valori validi sono svr e wks.Valid values are svr and wks. La compilazione di server è ottimizzata per sfruttare i vantaggi di più processori per operazioni di garbage collection e la compilazione di workstation è ottimizzata per le applicazioni client eseguite in un computer a processore singolo.The server build is optimized to take advantage of multiple processors for garbage collections, and the workstation build is optimized for client applications running on a single-processor machine.

Se pwszBuildFlavor è impostato su null, viene caricata la build per workstation.If pwszBuildFlavor is set to null, the workstation build is loaded. Quando si esegue in un computer a processore singolo, la compilazione della workstation viene sempre caricata, anche se pwszBuildFlavor è impostato su svr.When running on a single-processor machine, the workstation build is always loaded, even if pwszBuildFlavor is set to svr. Tuttavia, se pwszBuildFlavor è impostato su svr e garbage collection simultanea è specificata (vedere la descrizione del startupFlags parametro), verrà caricata la build del server.However, if pwszBuildFlavor is set to svr and concurrent garbage collection is specified (see the description of the startupFlags parameter), the server build is loaded.

startupFlags
[in] Una combinazione di valori del STARTUP_FLAGS enumerazione.[in] A combination of values of the STARTUP_FLAGS enumeration. Questi flag controllano garbage collection simultanea, il codice indipendente dal dominio e il comportamento del pwszVersion parametro.These flags control concurrent garbage collection, domain-neutral code, and the behavior of the pwszVersion parameter. Se non è impostato alcun flag, il valore predefinito è singolo dominio.The default is single domain if no flag is set. I valori validi sono i seguenti:The following values are valid:

  • STARTUP_CONCURRENT_GC

  • STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST

  • STARTUP_LOADER_SAFEMODE

  • STARTUP_LEGACY_IMPERSONATION

  • STARTUP_LOADER_SETPREFERENCE

  • STARTUP_SERVER_GC

  • STARTUP_HOARD_GC_VM

  • STARTUP_SINGLE_VERSION_HOSTING_INTERFACE

  • STARTUP_LEGACY_IMPERSONATION

  • STARTUP_DISABLE_COMMITTHREADSTACK

  • STARTUP_ALWAYSFLOW_IMPERSONATION

Per una descrizione di questi flag, vedere il STARTUP_FLAGS enumerazione.For descriptions of these flags, see the STARTUP_FLAGS enumeration.

rclsid
[in] Il CLSID della coclasse che implementa il ICorRuntimeHost o ICLRRuntimeHost interfaccia.[in] The CLSID of the coclass that implements either the ICorRuntimeHost or the ICLRRuntimeHost interface. Valori supportati sono CLSID_CorRuntimeHost o CLSID_CLRRuntimeHost.Supported values are CLSID_CorRuntimeHost or CLSID_CLRRuntimeHost.

riid
[in] Il IID dell'interfaccia richiesta da rclsid.[in] The IID of the requested interface from rclsid. Valori supportati sono IID_ICorRuntimeHost o IID_ICLRRuntimeHost.Supported values are IID_ICorRuntimeHost or IID_ICLRRuntimeHost.

ppv
[out] Il puntatore a interfaccia restituito riid.[out] The returned interface pointer to riid.

NoteRemarks

Se pwszVersion specifica una versione di runtime che non esiste, CorBindToRuntimeEx restituisce un valore HRESULT di CLR_E_SHIM_RUNTIMELOAD.If pwszVersion specifies a runtime version that does not exist, CorBindToRuntimeEx returns an HRESULT value of CLR_E_SHIM_RUNTIMELOAD.

Contesto di esecuzione e il flusso dell'identità di WindowsExecution Context and Flow of Windows Identity

Nella versione 1 di CLR, la WindowsIdentity oggetto non passa attraverso punti asincroni, ad esempio nuovi thread, pool di thread o i callback del timer.In version 1 of the CLR, the WindowsIdentity object does not flow across asynchronous points such as new threads, thread pools, or timer callbacks. Nella versione 2.0 di CLR, un ExecutionContext oggetto esegue il wrapping di alcune informazioni sul thread attualmente in esecuzione e ne effettua tra punti asincroni qualsiasi, ma non attraverso i limiti del dominio applicazione.In version 2.0 of the CLR, an ExecutionContext object wraps some information about the currently executing thread and flows it across any asynchronous point, but not across application domain boundaries. Analogamente, il WindowsIdentity oggetto anche passa attraverso un punto qualsiasi asincrono.Similarly, the WindowsIdentity object also flows across any asynchronous point. Pertanto, la rappresentazione corrente nel thread, se presente, i flussi troppo.Therefore, the current impersonation on the thread, if any, flows too.

È possibile modificare il flusso in due modi:You can alter the flow in two ways:

  1. Modificando il ExecutionContext le impostazioni per eliminare il flusso in base al thread (vedere il SuppressFlow, SuppressFlow, e SuppressFlowWindowsIdentity metodi).By modifying the ExecutionContext settings to suppress the flow on a per-thread basis (see the SuppressFlow, SuppressFlow, and SuppressFlowWindowsIdentity methods).

  2. Modificando la modalità predefinita di processo per la modalità di compatibilità di versione 1, in cui il WindowsIdentity oggetto non passa attraverso punti asincroni qualsiasi, indipendentemente dal valore di ExecutionContext impostazioni sul thread corrente.By changing the process default mode to the version 1 compatibility mode, where the WindowsIdentity object does not flow across any asynchronous point, regardless of the ExecutionContext settings on the current thread. Cambiare la modalità predefinita varia a seconda se si utilizza un file eseguibile gestito o in un'interfaccia di hosting non gestita per caricare Common Language Runtime:How you change the default mode depends on whether you use a managed executable or an unmanaged hosting interface to load the CLR:

    1. Per gli eseguibili gestiti, è necessario impostare il enabled attributo del <legacyImpersonationPolicy > elemento true.For managed executables, you must set the enabled attribute of the <legacyImpersonationPolicy> element to true.

    2. Per non gestita di interfacce di hosting, impostare il STARTUP_LEGACY_IMPERSONATION flag nel startupFlags parametro quando si chiama il CorBindToRuntimeEx (funzione).For unmanaged hosting interfaces, set the STARTUP_LEGACY_IMPERSONATION flag in the startupFlags parameter when calling the CorBindToRuntimeEx function.

    La modalità di compatibilità della versione 1 si applica all'intero processo e tutti i domini applicazione nel processo.The version 1 compatibility mode applies to the entire process and to all the application domains in the process.

RequisitiRequirements

Piattaforme: vedere requisiti di sistema.Platforms: See System Requirements.

Intestazione: Mscoree. HHeader: MSCorEE.h

Libreria: Mscoree. dllLibrary: MSCorEE.dll

Versioni di .NET framework: Disponibile dalla 1.0Available since 1.0.NET Framework Versions: Disponibile dalla 1.0Available since 1.0

Vedere ancheSee Also

Funzione CorBindToCurrentRuntimeCorBindToCurrentRuntime Function
Funzione CorBindToRuntimeCorBindToRuntime Function
Funzione CorBindToRuntimeByCfgCorBindToRuntimeByCfg Function
Funzione CorBindToRuntimeHostCorBindToRuntimeHost Function
Interfaccia ICorRuntimeHostICorRuntimeHost Interface
Funzioni di hosting CLR deprecateDeprecated CLR Hosting Functions