Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Permite que los hosts no administrados carguen Common Language Runtime (CLR) en un proceso.
Las funciones CorBindToRuntime y CorBindToRuntimeEx realizan la misma operación, pero la CorBindToRuntimeEx función permite establecer marcas para especificar el comportamiento de CLR.
Esta función ha quedado en desuso en .NET Framework 4.
Esta función toma un conjunto de parámetros que permiten a un host hacer lo siguiente:
Especifique la versión del entorno de ejecución que se cargará.
Indique si se debe cargar la compilación del servidor o de la estación de trabajo.
Controlar si se realiza la recolección simultánea de elementos no utilizados o la recolección de elementos no utilizados no simultáneas.
Nota:
La recolección simultánea de elementos no utilizados no se admite en aplicaciones que ejecutan el emulador WOW64 x86 en sistemas de 64 bits que implementan la arquitectura de Intel Itanium (anteriormente denominada IA-64). Para obtener más información sobre el uso de WOW64 en sistemas Windows de 64 bits, consulte Ejecución de aplicaciones de 32 bits.
Controlar si los ensamblados se cargan como neutrales de dominio.
Obtenga un puntero de interfaz a un ICorRuntimeHost que se pueda usar para establecer opciones adicionales para configurar una instancia de CLR antes de iniciarse.
Sintaxis
HRESULT CorBindToRuntimeEx (
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszBuildFlavor,
[in] DWORD startupFlags,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID FAR *ppv
);
Parámetros
pwszVersion [in] Cadena que describe la versión de CLR que desea cargar.
Un número de versión de .NET Framework consta de cuatro partes separadas por puntos: major.minor.build.revision. La cadena pasada como pwszVersion debe comenzar con el carácter "v" seguido de las tres primeras partes del número de versión (por ejemplo, "v1.0.1529").
Algunas versiones de CLR se instalan con una instrucción de directiva que especifica la compatibilidad con versiones anteriores de CLR. De forma predeterminada, la corrección de compatibilidad de inicio se evalúa en las instrucciones pwszVersion de directiva y carga la versión más reciente del entorno de ejecución que es compatible con la versión que se solicita. Un host puede forzar que las correcciones de compatibilidad omitan la evaluación de directivas y carguen la versión exacta especificada en pwszVersion pasando un valor de STARTUP_LOADER_SAFEMODE para el startupFlags parámetro, como se describe a continuación.
Si el autor de la llamada especifica null para pwszVersion, CorBindToRuntimeEx identifica el conjunto de entornos de ejecución instalados cuyos números de versión son inferiores al tiempo de ejecución de .NET Framework 4 y carga la versión más reciente del tiempo de ejecución desde ese conjunto. No cargará .NET Framework 4 o posterior y producirá un error si no hay instalada ninguna versión anterior. Tenga en cuenta que pasar null proporciona al host ningún control sobre qué versión del tiempo de ejecución se carga. Aunque este enfoque puede ser adecuado en algunos escenarios, se recomienda encarecidamente que el host proporcione una versión específica para cargar.
pwszBuildFlavor [in] Cadena que especifica si se va a cargar el servidor o la compilación de estación de trabajo de CLR. Los valores válidos son svr y wks. La compilación del servidor está optimizada para aprovechar varias ventajas de varios procesadores para las recolecciones de elementos no utilizados y la compilación de estación de trabajo está optimizada para las aplicaciones cliente que se ejecutan en una máquina de un solo procesador.
Si pwszBuildFlavor se establece en null, se carga la compilación de estación de trabajo. Cuando se ejecuta en una máquina de un solo procesador, la compilación de la estación de trabajo siempre se carga, aunque pwszBuildFlavor esté establecida svren . Sin embargo, si pwszBuildFlavor se establece svr en y se especifica la recolección simultánea de elementos no utilizados (vea la descripción del startupFlags parámetro ), se carga la compilación del servidor.
startupFlags [in] Combinación de valores de la enumeración STARTUP_FLAGS . Estas marcas controlan la recolección simultánea de elementos no utilizados, el código neutral del dominio y el comportamiento del pwszVersion parámetro . El valor predeterminado es un dominio único si no se establece ninguna marca. Valores válidos son:
STARTUP_CONCURRENT_GCSTARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAINSTARTUP_LOADER_OPTIMIZATION_MULTI_DOMAINSTARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOSTSTARTUP_LOADER_SAFEMODESTARTUP_LOADER_SETPREFERENCESTARTUP_SERVER_GCSTARTUP_HOARD_GC_VMSTARTUP_SINGLE_VERSION_HOSTING_INTERFACESTARTUP_LEGACY_IMPERSONATIONSTARTUP_DISABLE_COMMITTHREADSTACKSTARTUP_ALWAYSFLOW_IMPERSONATION
Para obtener descripciones de estas marcas, consulte la enumeración STARTUP_FLAGS .
rclsid[in] CLSID de la coclase que implementa ICorRuntimeHost o la interfaz ICLRRuntimeHost. Los valores admitidos son CLSID_CorRuntimeHost o CLSID_CLRRuntimeHost.
riid [in] IID de la interfaz solicitada de rclsid. Los valores admitidos son IID_ICorRuntimeHost o IID_ICLRRuntimeHost.
ppv [out] Puntero de interfaz devuelto a riid.
Observaciones
Si pwszVersion especifica una versión en tiempo de ejecución que no existe, CorBindToRuntimeEx devuelve un valor HRESULT de CLR_E_SHIM_RUNTIMELOAD.
Contexto de ejecución y flujo de identidad de Windows
En la versión 1 de CLR, el WindowsIdentity objeto no fluye entre puntos asincrónicos, como nuevos subprocesos, grupos de subprocesos o devoluciones de llamada del temporizador. En la versión 2.0 de CLR, un ExecutionContext objeto ajusta cierta información sobre el subproceso que se está ejecutando actualmente y lo fluye a través de cualquier punto asincrónico, pero no a través de los límites del dominio de aplicación. Del mismo modo, el WindowsIdentity objeto también fluye a través de cualquier punto asincrónico. Por lo tanto, la suplantación actual en el subproceso, si existe, también fluye.
Puede modificar el flujo de dos maneras:
Mediante la modificación de la ExecutionContext configuración para suprimir el flujo por subproceso (consulte los SuppressFlowmétodos , SuppressFlowy SuppressFlowWindowsIdentity ).
Al cambiar el modo predeterminado del proceso al modo de compatibilidad de la versión 1, donde el WindowsIdentity objeto no fluye a través de ningún punto asincrónico, independientemente de la ExecutionContext configuración del subproceso actual. La forma de cambiar el modo predeterminado depende de si usa un archivo ejecutable administrado o una interfaz de hospedaje no administrada para cargar clR:
Para los ejecutables administrados, debe establecer el
enabledatributo del <elemento legacyImpersonationPolicy> en .truePara las interfaces de hospedaje no administradas, establezca la
STARTUP_LEGACY_IMPERSONATIONmarca en elstartupFlagsparámetro al llamar a laCorBindToRuntimeExfunción.
El modo de compatibilidad de la versión 1 se aplica a todo el proceso y a todos los dominios de aplicación del proceso.
Requisitos
Plataformas: Consulte Requisitos del sistema.
Encabezado: MSCorEE.h
Biblioteca: MSCorEE.dll
Versiones de .NET Framework: está disponible desde la versión 1.0