Compartilhar via


Método ICLRMetaHost::RequestRuntimeLoadedNotification

Fornece uma função de retorno de chamada que tem a garantia de ser chamada quando uma versão do CLR (Common Language Runtime) é carregada pela primeira vez, mas ainda não iniciada. Esse método substitui a função LockClrVersion.

Sintaxe

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

Parâmetros

pCallbackFunction
[in] A função de retorno de chamada que é invocada quando um novo runtime é carregado.

Valor Retornado

Esse método retorna os seguintes HRESULTs específicos, bem como erros HRESULT que indicam falha de método.

HRESULT Descrição
S_OK O método foi concluído com sucesso.
E_POINTER pCallbackFunction é nulo.

Comentários

O retorno de chamada funciona da seguinte maneira:

  • O retorno de chamada é invocado somente quando um runtime é carregado pela primeira vez.

  • O retorno de chamada não é invocado para cargas reentrantes do mesmo runtime.

  • Para cargas de runtime não reentrantes, as chamadas para a função de retorno de chamada são serializadas.

A função de retorno de chamada tem o seguinte protótipo:

typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)(  
                     ICLRRuntimeInfo *pRuntimeInfo,  
                     CallbackThreadSetFnPtr pfnCallbackThreadSet,  
                     CallbackThreadUnsetFnPtr pfnCallbackThreadUnset);  

Os protótipos da função de retorno de chamada são os seguintes:

  • pfnCallbackThreadSet:

    typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)();  
    
  • pfnCallbackThreadUnset:

    typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();  
    

Se o host pretende carregar ou fazer com que outro runtime seja carregado de maneira reentrante, os parâmetros pfnCallbackThreadSet e pfnCallbackThreadUnset fornecidos na função de retorno de chamada deverão ser usados da seguinte maneira:

  • pfnCallbackThreadSet deve ser chamado pelo thread que pode causar uma carga de runtime antes que essa carga seja tentada.

  • pfnCallbackThreadUnset deve ser chamado quando o thread já não cause essa carga de runtime (e antes de retornar do retorno de chamada inicial).

  • pfnCallbackThreadSet e pfnCallbackThreadUnset são não reentrantes.

Observação

Os aplicativos host não devem chamar pfnCallbackThreadSet e pfnCallbackThreadUnset fora do escopo do parâmetro pCallbackFunction.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MetaHost.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 4

Confira também