Método IHostTaskManager::CallNeedsHostHook
Permite que o host para especificar se o Common linguagem tempo de execução (CLR) pode embutido a telefonar especificada para uma função não gerenciada.
HRESULT CallNeedsHostHook (
[in] SIZE_T target,
[out] BOOL *pbCallNeedsHostHook
);
Parâmetros
target
[in] O endereço do arquivo mapeado executável portátil (PE) da função não gerenciada que deve ser chamado.pbCallNeedsHostHook
[out] Um ponteiro para um valor booliano que indica se o host requer a telefonar a ser conectado.
Valor de retorno
HRESULT |
Descrição |
---|---|
S_OK |
CallNeedsHostHook retornado com êxito. |
HOST_E_CLRNOTAVAILABLE |
O CLR não foi carregado em um processo ou o CLR está em um estado em que ele não possa executar código gerenciado ou processar a telefonar com êxito. |
HOST_E_TIMEOUT |
A telefonar expirou. |
HOST_E_NOT_OWNER |
O chamador não é proprietário do bloquear. |
HOST_E_ABANDONED |
Um evento foi cancelado enquanto um segmento bloqueado ou fibra estava aguardando nele. |
E_FAIL |
Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é mais útil dentro do processo. As chamadas subseqüentes à hospedagem métodos retornam HOST_E_CLRNOTAVAILABLE. |
Comentários
Para ajudar a otimizar a execução de código, o CLR executa uma análise de cada invocação de plataforma chamadas durante a compilação para determinar se a telefonar pode ser embutida. CallNeedsHostHook permite que o host para substituir essa decisão, exigindo que uma telefonar para uma função não gerenciada ser conectado. Se o host requer um gancho, o tempo de execução não embutido não a telefonar.
O host normalmente requer um gancho de onde ele deverá ajustar um estado de ponto flutuante ou ao receber a notificação de que uma telefonar é inserindo um estado em que o host não é possível rastrear solicitações do tempo de execução de memória ou nenhum bloqueio tomado. Quando o host requer que a telefonar ser conectado, o tempo de execução notifica o host de transições de e para código gerenciado usando chamadas de EnterRuntime, LeaveRuntime, ReverseEnterRuntime, and ReverseLeaveRuntime.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: MSCorEE.idl
Biblioteca: Incluído sistema autônomo um recurso em MSCorEE.dll
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0