Partilhar via


Método ICLRMetaHost::RequestRuntimeLoadedNotification

Fornece uma função de chamada de retorno que é garantidamente chamada quando uma versão comum do tempo de execução de linguagem (CLR) é carregada pela primeira vez, mas ainda não iniciada. Este método substitui a função LockClrVersion .

Sintaxe

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

Parâmetros

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

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 pCallbackFunction é nulo.

Observações

A chamada de retorno funciona da seguinte forma:

  • A chamada de retorno é invocada apenas quando um runtime é carregado pela primeira vez.

  • A chamada de retorno não é invocada para cargas reentrantes do mesmo runtime.

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

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

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

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

  • pfnCallbackThreadSet:

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

    typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();  
    

Se o anfitrião pretender carregar ou fazer com que outro runtime seja carregado de forma reentrante, os pfnCallbackThreadSet parâmetros e pfnCallbackThreadUnset fornecidos na função de chamada de retorno têm de ser utilizados da seguinte forma:

  • pfnCallbackThreadSet tem de ser chamado pelo thread que pode causar uma carga de runtime antes de tal carga ser tentada.

  • pfnCallbackThreadUnset tem de ser chamado quando o thread deixar de causar essa carga de runtime (e antes de regressar da chamada de retorno inicial).

  • pfnCallbackThreadSet e pfnCallbackThreadUnset são ambos não reentrrantes.

Nota

As aplicações anfitriãs não podem chamar pfnCallbackThreadSet e pfnCallbackThreadUnset fora do âmbito do pCallbackFunction parâmetro .

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