Compartilhar via


Função CorBindToRuntime

Permite que hosts não gerenciados para carregar o common linguagem tempo de execução (CLR) em um processo.

HRESULT CorBindToRuntime (
        [in]  LPCWSTR     pwszVersion, 
        [in]  LPCWSTR     pwszBuildFlavor, 
        [in]  REFCLSID    rclsid, 
        [in]  REFIID      riid, 
        [out] LPVOID FAR  *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 flags 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 flags parameter), the server build is loaded.

  • 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 flags 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.

Comentários

CorBindToRuntimeEx and CorBindToRuntime executar a mesma operação, mas o CorBindToRuntimeEx função permite conjunto sinalizadores para especificar o comportamento do CLR.

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 CorBindToRuntimeByCfg

Função CorBindToRuntimeEx

Função CorBindToRuntimeHost

Interface ICorRuntimeHost

Outros recursos

Hospedagem estático funções global