Funzione CorBindToRuntime

Consente agli host non gestiti di caricare Common Language Runtime (CLR) in un processo.

Questa funzione è stata deprecata nel .NET Framework 4.

Sintassi

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

Parametri

pwszVersion
[in] Stringa che descrive la versione di CLR da caricare.

Un numero di versione nel .NET Framework è costituito da quattro parti separate da punti: 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 "v1.0.1529".

Alcune versioni di CLR vengono installate con un'istruzione dei criteri che specifica la compatibilità con le versioni precedenti di CLR. Per impostazione predefinita, lo shim pwszVersion di avvio valuta le istruzioni dei criteri e carica la versione più recente del runtime compatibile con la versione richiesta. Un host può forzare lo shim a ignorare la valutazione dei criteri e caricare STARTUP_LOADER_SAFEMODE la versione esatta specificata in pwszVersion passando il valore per il flags parametro , come descritto di seguito.

Se il chiamante specifica null per pwszVersion, viene caricata la versione più recente del runtime. Il passaggio di null non fornisce all'host alcun controllo sulla versione del runtime caricata. Anche se questo approccio può essere appropriato in alcuni scenari, è consigliabile che l'host fornirà una versione specifica da caricare.

pwszBuildFlavor
[in] Stringa che specifica se caricare il server o la build della workstation di CLR. I valori validi sono svr e wks. La build del server è ottimizzata per sfruttare i vantaggi di più processori per le operazioni di Garbage Collection e la compilazione della workstation è ottimizzata per le applicazioni client in esecuzione in un computer a processore singolo.

Se pwszBuildFlavor è impostato su Null, viene caricata la build della workstation. Quando viene eseguita in un computer a processore singolo, la build della workstation viene sempre caricata, anche se pwszBuildFlavor è impostata su svr. Tuttavia, se è pwszBuildFlavor impostato su svr e viene specificata l'operazione di Garbage Collection simultanea ( flags vedere la descrizione del parametro ), viene caricata la compilazione del server.

rclsid
[in] Oggetto CLSID della coclasse che implementa CLSID o ICLRRuntimeHost . I valori supportati CLSID_CorRuntimeHost o CLSID_CLRRuntimeHost.

riid
[in] Dell'interfaccia IID richiesta da rclsid. I valori supportati IID_ICorRuntimeHost o IID_ICLRRuntimeHost.

ppv
[out] Puntatore a interfaccia restituito a riid.

Commenti

Se pwszVersion specifica una versione di runtime che non esiste, CorBindToRuntimeEx restituisce un valore HRESULT CLR_E_SHIM_RUNTIMELOAD.

CorBindToRuntimeEx ed eseguire la stessa operazione, CorBindToRuntimeEx ma la funzione consente di impostare flag per specificare il comportamento di CLR.

Contesto di esecuzione e Flow di Windows Identity

Nella versione 1 di CLR, l'oggetto WindowsIdentity non scorre attraverso punti asincroni, ad esempio nuovi thread, pool di thread o callback timer. Nella versione 2.0 di CLR, ExecutionContext un oggetto esegue il wrapping di alcune informazioni sul thread attualmente in esecuzione e lo scorre attraverso qualsiasi punto asincrono, ma non attraverso i limiti del dominio dell'applicazione. Analogamente, l'oggetto WindowsIdentity passa anche attraverso qualsiasi punto asincrono. Di conseguenza, anche la rappresentazione corrente nel thread, se presente, viene propagata.

È possibile modificare il flusso in due modi:

  1. Modificando le impostazioni ExecutionContext per eliminare il flusso in base al thread (vedere i SuppressFlowmetodi , SuppressFlowe SuppressFlowWindowsIdentity ).

  2. Modificando la modalità predefinita del processo alla modalità di compatibilità versione 1, WindowsIdentity in cui l'oggetto non attraversa alcun punto asincrono, ExecutionContext indipendentemente dalle impostazioni nel thread corrente. La modalità di modifica predefinita dipende dall'uso di un eseguibile gestito o di un'interfaccia di hosting non gestita per caricare CLR:

    1. Per i file eseguibili gestiti, è necessario impostare l'attributo enabledenabled su true.

    2. Per le interfacce di hosting non gestite, impostare il STARTUP_LEGACY_IMPERSONATION flag nel parametro flags quando si chiama la CorBindToRuntimeEx funzione .

    La modalità di compatibilità versione 1 si applica all'intero processo e a tutti i domini applicazione nel processo.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: MSCorEE.dll

.NET Framework versioni: disponibili a partire dalla 1.0

Vedi anche