Partilhar via


Método ICLRMetaHostPolicy::GetRequestedRuntime

Fornece uma interface para uma versão preferencial do common language runtime (CLR) com base numa política de alojamento, assemblagem gerida, cadeia de versão e fluxo de configuração. Este método não carrega ou ativa o CLR, mas simplesmente devolve a interface ICLRRuntimeInfo que representa o resultado da política. Este método substitui os métodos GetRequestedRuntimeInfo, GetRequestedRuntimeVersion, CorBindToRuntimeHost, CorBindToRuntimeByCfg e GetCORRequiredVersion .

Sintaxe

HRESULT GetRequestedRuntime(
    [in]  METAHOST_POLICY_FLAGS dwPolicyFlags,
    [in]  LPCWSTR pwzBinary,
    [in]  IStream *pCfgStream,
    [in, out, size_is(*pcchVersion)] LPWSTR pwzVersion,
    [in, out]  DWORD *pcchVersion,
    [out, size_is(*pcchImageVersion)] LPWSTR pwzImageVersion,
    [in, out]  DWORD *pcchImageVersion,
    [out] DWORD *pdwConfigFlags,
    [in]  REFIID  riid
    [out, iid_is(riid), retval] LPVOID *ppRuntime);

Parâmetros

Nome Descrição
dwPolicyFlags [in] Obrigatório. Especifica um membro da enumeração METAHOST_POLICY_FLAGS , que representa uma política de enlace e qualquer número de modificadores. A única política atualmente disponível é METAHOST_POLICY_HIGHCOMPAT.

Os modificadores incluem METAHOST_POLICY_EMULATE_EXE_LAUNCH, METAHOST_POLICY_APPLY_UPGRADE_POLICY, METAHOST_POLICY_SHOW_ERROR_DIALOG, METAHOST_POLICY_USE_PROCESS_IMAGE_PATH e METAHOST_POLICY_ENSURE_SKU_SUPPORTED.
pwzBinary [in] Opcional. Especifica o caminho do ficheiro de assemblagem.
pCfgStream [in] Opcional. Especifica o ficheiro de configuração como um System.Runtime.InteropServices.ComTypes.IStream.
pwzVersion [dentro, fora] Opcional. Especifica ou devolve a versão do CLR preferencial a carregar.
pcchVersion [dentro, fora] Obrigatório. Especifica o tamanho esperado de pwzVersion como entrada, para evitar excessos na memória intermédia. Se pwzVersion for nulo, pcchVersion contém o tamanho esperado de pwzVersion quando GetRequestedRuntime é devolvido, para permitir a pré-alocação; caso contrário, pcchVersion contém o número de carateres escritos em pwzVersion.
pwzImageVersion [fora] Opcional. Quando GetRequestedRuntime devolve, contém a versão CLR correspondente à interface ICLRRuntimeInfo que é devolvida.
pcchImageVersion [dentro, fora] Opcional. Especifica o tamanho de pwzImageVersion como entrada para evitar ultrapassagens da memória intermédia. Se pwzImageVersion for nulo, pcchImageVersion contém o tamanho necessário de pwzImageVersion quando GetRequestedRuntime é devolvido, para permitir a pré-alocação.
pdwConfigFlags [fora] Opcional. Se GetRequestedRuntime utilizar um ficheiro de configuração durante o processo de enlace, quando este devolver, pdwConfigFlags contém um valor METAHOST_CONFIG_FLAGS que indica se o <elemento de arranque> tem o useLegacyV2RuntimeActivationPolicy conjunto de atributos e o valor do atributo. Aplique a máscara de METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK para pdwConfigFlags obter os valores relevantes para useLegacyV2RuntimeActivationPolicy.
riid [in] Especifica o identificador da interface IID_ICLRRuntimeInfo para a interface ICLRRuntimeInfo pedida.
ppRuntime [fora] Quando GetRequestedRuntime é devolvido, contém um ponteiro para a interface ICLRRuntimeInfo correspondente.

Observações

Quando este método for bem-sucedido, tem o efeito secundário de combinar sinalizadores adicionais com os sinalizadores de arranque predefinidos atuais da interface de runtime devolvida, se e apenas se existir um ou mais dos seguintes elementos no fluxo de configuração na <configuration><runtime> secção:

  • <gcServer enabled="true"/>STARTUP_SERVER_GC causas a definir.

  • <etwEnable enabled="true"/>STARTUP_ETW causas a definir.

  • <appDomainResourceMonitoring enabled="true"/>STARTUP_ARM causas a definir.

O valor predefinido STARTUP_FLAGS resultante é a combinação bit a bit OU dos valores que são definidos a partir da lista anterior com os sinalizadores de arranque predefinidos.

Devolver Valor

Este método devolve os seguintes HRESULTs específicos, bem como erros HRESULT que indicam a falha do método.

HRESULT Description
S_OK O método foi concluído com êxito.
E_POINTER pwzVersion não é nulo e pcchVersion é nulo.

-ou-

pwzImageVersion não é nulo e pcchImageVersion é nulo.
E_INVALIDARG dwPolicyFlags não especifica METAHOST_POLICY_HIGHCOMPAT.
ERROR_INSUFFICIENT_BUFFER A memória alocada a pwzVersion é inadequada.

-ou-

A memória alocada a pwzImageVersion é inadequada.
CLR_E_SHIM_RUNTIMELOAD dwPolicyFlags inclui METAHOST_POLICY_APPLY_UPGRADE_POLICY e e pwzVersionpcchVersion são nulos.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: MetaHost.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 4

Ver também