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
epfnCallbackThreadUnset
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