Partager via


CorBindToRuntimeEx

Permet à des hôtes non managés de charger le Common Language Runtime dans un processus. Consultez Hébergement du Common Language Runtime pour obtenir une description complète des scénarios dans lesquels CorBindToRuntimeEx est utilisée.

Cette méthode prend un ensemble de paramètres qui permet à un hôte d'effectuer les actions suivantes :

  • spécifier la version du runtime qui sera chargée ;

  • indiquer si la build du serveur ou de la station de travail doit être chargée ;

  • contrôler si le garbage collection simultané ou le garbage collection non simultané est effectué ;

  • contrôler si les assemblys sont chargés comme étant indépendants du domaine ;

  • obtenir un pointeur d'interface vers ICorRuntimeHost qui est utilisé pour définir plusieurs options supplémentaires permettant à un hôte de configurer une instance du Common Language Runtime avant son démarrage ;

HRESULT CorBindToRuntimeEx ( 
    LPWSTR pwszVersion,   
    LPWSTR pwszBuildFlavor, 
    DWORD flags,            
    REFCLSID rclsid,      
    REFIID riid,    
    LPVOID* ppv
);

Paramètres

Paramètre Description

pwszVersion

[in] Chaîne décrivant la version du Common Language Runtime à charger.

Dans le .NET Framework, un numéro de version se compose de quatre parties séparées par des points : Major.Minor.Build.Revision. La chaîne passée en tant que pwszVersion doit commencer par le caractère "v", suivi des trois premières parties du numéro de version. Par exemple :

   v1.0.1529

Certaines versions du Common Language Runtime sont installées avec une instruction de stratégie qui spécifie la compatibilité avec les versions précédentes du Common Language Runtime. Par défaut, le shim de démarrage évalue pwszVersion en fonction des instructions de stratégie et charge la dernière version du runtime compatible avec la version demandée. Un hôte peut obliger le shim à ignorer l'évaluation de stratégie et à charger exactement la version spécifiée dans pwszVersion en passant une valeur de STARTUP_LOADER_SAFEMODE pour flags. Consultez la description de flags ci-dessous.

Si l'appelant spécifie null pour pwszVersion, la dernière version du Common Language Runtime est chargée. Lorsque la valeur null est passée, l'hôte n'a aucun contrôle sur la version du runtime qui est chargée. Si cela peut convenir dans certains scénarios, il est fortement recommandé que l'hôte fournisse une version spécifique à charger.

pwszBuildFlavor

[in] Chaîne qui spécifie s'il convient de charger la build du serveur ou de la station de travail du Common Language Runtime. Les valeurs valides sont "wks" et "svr". La build du serveur est optimisée afin de tirer parti de plusieurs processeurs lors des opérations de garbage collection, tandis que la build de la station de travail est optimisée pour les applications clientes qui s'exécutent sur un ordinateur à un seul processeur.

Si la valeur de pwszBuildFlavor est null, la build de la station de travail est chargée. Lors de l'exécution sur un ordinateur à un seul processeur, la build de la station de travail est toujours chargée, même si pwszBuildFlavor a la valeur "svr". Toutefois, si la valeur "svr" est passée et qu'un garbage collection simultané est spécifié (consultez la description du paramètre flags ci-dessous), la build du serveur est chargée. L'exécution d'un garbage collection simultané sur une build du serveur n'est généralement pas souhaitable ; toutefois le shim de démarrage du Common Language Runtime ne possède aucune logique spéciale permettant d'empêcher cette configuration.

flags

[in] Ensemble d'indicateurs qui contrôlent le garbage collection simultané, le code indépendant du domaine et le comportement du paramètre pwszVersion. La valeur par défaut est un domaine unique si aucun des indicateurs n'est défini. Les valeurs suivantes sont valides :

  • STARTUP_CONCURRENT_GC Spécifie que le garbage collection simultané doit être utilisé. Si l'appelant demande la build du serveur et le garbage collection simultané sur un ordinateur à un seul processeur, la build de la station de travail et le garbage collection non simultané sont exécutés à la place.

  • STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN Aucun assembly n'est chargé comme étant indépendant du domaine.

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN Tous les assemblys sont chargés comme étant indépendants du domaine.

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST Tous les assemblys avec nom fort sont chargés comme étant indépendants du domaine.

  • STARTUP_LOADER_SAFEMODE Spécifie que la version exacte du Common Language Runtime passée dans pwszVersion sera chargée. Le shim n'évalue pas la stratégie pour déterminer la dernière version compatible.

  • STARTUP_LEGACY_IMPERSONATION

rclsid

[in] CLSID de la coclasse qui implémente l'interface ICorRuntimeHost. Les valeurs prises en charge sont CLSID_CorRuntimeHost ou CLSID_CLRRuntimeHost.

riid

[in] IID de l'interface demandée par rclsid. Les valeurs prises en charge sont IID_ICorRuntimeHost ou IID_ICLRRuntimeHost.

ppv

[out] Pointeur d'interface retourné à riid.

Notes

Si pwszVersion spécifie une version du runtime qui n'existe pas, CorBindToRuntimeEx retourne une valeur HRESULT de CLR_E_SHIM_RUNTIMELOAD.

Configuration requise

Plates-formes : Windows 2000, Windows XP, famille Windows Server 2003

En-tête : déclaré dans Mscoree.h

Bibliothèque : incluse en tant que ressource dans Mscoree.dll

Voir aussi

Référence

CorBindToRuntime