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.
Esta función ha quedado en desuso en .NET Framework 4.
Sintaxis
HRESULT CorBindToRuntime (
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszBuildFlavor,
[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 flags parámetro, como se describe a continuación.
Si el autor de la llamada especifica null para pwszVersion, se carga la versión más reciente del entorno de ejecución. 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 flags parámetro ), se carga la compilación del servidor.
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.
CorBindToRuntimeEx y CorBindToRuntime realizan la misma operación, pero la CorBindToRuntimeEx función permite establecer marcas para especificar el comportamiento de CLR.
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 elflagspará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