Partilhar via


Função CorBindToRuntimeEx

Permite que hosts não gerenciados para carregar o common linguagem tempo de execução (CLR) em um processo. The CorBindToRuntime and CorBindToRuntimeEx funções de efetuar a mesma operação, mas o CorBindToRuntimeEx função permite conjunto sinalizadores para especificar o comportamento do CLR.

See Hospedagem do Common Language Runtime Para obter uma descrição completa dos cenários em que CorBindToRuntimeEx é usado.

Essa função usa um conjunto de parâmetros que permitem que um host fazer o seguinte:

  • Especifique a versão do tempo de execução que será carregado.

  • Indique se a compilação do servidor ou estação de trabalho deve ser carregada.

  • controle Se coleta de lixo simultâneos ou coleta de lixo não simultânea é feita.

ObservaçãoObservação:

Coleta de lixo simultâneas não há suporte para aplicativos executados no WOW64 x86 emulador em sistemas de 64 bit que implementam a arquitetura Intel Itanium (anteriormente chamado IA-64). Para obter mais informações sobre o uso do WOW64 em sistemas Windows de 64 bit, consulte Executando aplicativos de 32 bit .

  • Controle se sistema autônomo assemblies são carregados sistema autônomo domínio neutro.

  • Obter um ponteiro de interface para um ICorRuntimeHost que podem ser usados para conjunto opções adicionais para configurar uma instância do CLR antes que ela seja iniciada.

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

Parâmetros

  • pwszVersion
    [in] Uma seqüência de caracteres que descreve a versão do CLR que você deseja carregar.

    Um número de versão do .NET estrutura consiste em quatro partes separadas por pontos: Major.minor.compilação.Revision. A cadeia de caracteres passada sistema autônomo pwszVersiondeve iniciar com o caractere "v" seguido sistema autônomo primeiras três partes do número de versão (por exemplo, "v1.0.1529").

    Algumas versões do CLR são instalados com uma demonstrativo de diretiva que especifica compatibilidade com versões anteriores do CLR. Por padrão, a correção de inicialização avalia pwszVersion contra instruções de políticas e carrega a versão mais recente do tempo de execução que é compatível com a versão que está sendo solicitada. Um host pode forçar a correção para ignorar a avaliação da diretiva e carregue a versão exata especificada em pwszVersion passando o valor STARTUP_LOADER_SAFEMODE para o startupFlags parâmetro, conforme descrito abaixo.

    Se o chamador especificar nulo para pwszVersion, a versão mais recente do tempo de execução é carregada. Passar nulo não, o host nenhum controle através do qual versão do tempo de execução é carregada. Embora essa abordagem pode ser adequada em algumas situações, é altamente recomendável que o host de fornece uma versão específica para carregar.

  • pwszBuildFlavor
    [in] Uma seqüência de caracteres que especifica se deve carregar o servidor ou a compilação de estação de trabalho do CLR. Os valores válido são svr e wks. A compilação do servidor é otimizada para usufruir os vários processadores para coletas de lixo e a compilação de estação de trabalho é otimizada para aplicativos cliente executados em uma computador de processador único.

    If pwszBuildFlavoris set to null, the workstation build is loaded. When running on a single-processor machine, the workstation build is always loaded, even if pwszBuildFlavoris set to svr. However, if pwszBuildFlavoris set to svr and concurrent garbage collection is specified (see the description of the startupFlags parameter), the server build is loaded.

  • startupFlags
    [in] Uma combinação de valores do STARTUP_FLAGS enumeração. Esses sinalizadores controlam a coleta de lixo simultâneas, código de domínio neutro e o comportamento do pwszVersion parâmetro. O padrão é o único domínio se nenhum sinalizar estiver definido. Os seguintes valores são válido:

    • 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

    Para obter descrições sobre esses sinalizadores, consulte o STARTUP_FLAGS enumeração.

  • rclsid
    [in] The CLSID de coclass que implementa o ICorRuntimeHost interface. Supported values are CLSID_CorRuntimeHostor CLSID_CLRRuntimeHost.

  • riid
    [in] The IID da interface solicitada do rclsid. Há suporte para os valores são IID_ICorRuntimeHost ou IID_ICLRRuntimeHost.

  • ppv
    [out] O ponteiro de interface retornado para riid.

Comentários

If pwszVersion Especifica uma versão de tempo de execução que não existe CorBindToRuntimeEx Retorna um valor HRESULT de CLR_E_SHIM_RUNTIMELOAD.

Contexto de execução e fluxo de identidade do Windows

Na versão 1 do CLR, a WindowsIdentity objeto não flui entre pontos assíncrono, sistema autônomo novos threads, pools de threads ou retornos de chamada timer. Na versão 2.0 do CLR, um ExecutionContext objeto envolve algumas informações sobre o thread atualmente em execução e flui-lo em qualquer ponto assíncrono, mas não através de limites de domínio do aplicativo. Da mesma forma, a WindowsIdentity objeto também flui em qualquer ponto assíncrono. Portanto, a representação corrente no thread, se houver, fluxos muito.

Você pode alterar o fluxo de duas maneiras:

  1. Modificando o ExecutionContext configurações para suprimir o fluxo em uma base por thread (consulte a SuppressFlow, SuppressFlow, e SuppressFlowWindowsIdentity métodos).

  2. Alterando o modo padrão do processo para o modo de compatibilidade de versão 1, onde o WindowsIdentity objeto não flui em qualquer ponto assíncrono, independentemente da ExecutionContext configurações no thread corrente. Como alterar o modo padrão depende se você usar um executável gerenciado ou uma interface de hospedagem não gerenciada para carregar o CLR:

    1. Executáveis gerenciado, você deve conjunto o enabled atributo das <legacyimpersonationpolicy> elemento de true.

    2. Para interfaces de hospedagem não gerenciados, defina o STARTUP_LEGACY_IMPERSONATION sinalizar na startupFlags parâmetro ao chamar o CorBindToRuntimeEx função.

    O modo de compatibilidade da versão 1 se aplica a todo o processo e a todos os domínios de aplicativo no processo.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: MSCorEE.idl

Biblioteca: MSCorEE.dll

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Consulte também

Referência

Função CorBindToCurrentRuntime

Função CorBindToRuntime

Função CorBindToRuntimeByCfg

Função CorBindToRuntimeHost

Interface ICorRuntimeHost

Outros recursos

Hospedagem estático funções global