Descarregando um servidor com identificadores de contexto pendentes
Tradicionalmente, o descarregamento de uma DLL que atende chamadas RPC usando identificadores de contexto, sem primeiro interromper o processo de hospedagem, tem sido problemático. Isso ocorre porque a rotina de run down não é mais válida quando a DLL está sendo descarregada. Quando um cliente com um identificador de contexto aberto anteriormente falha e o tempo de execução do RPC tenta fechar o identificador de contexto, sua tentativa de chamar o acesso de rotina de execução é violada e o servidor falha.
A partir do Windows XP, uma nova API chamada RpcServerUnregisterIfEx foi adicionada. RpcServerUnregisterIfEx fecha os identificadores de contexto abertos pela interface que está sendo cancelada; a função RpcServerUnregisterIf não. O uso de RpcServerUnregisterIfEx não é necessário quando todo o processo é desligado, mas é necessário se uma ou mais DLLs que hospedam as rotinas de execução são descarregadas enquanto há identificadores de contexto pendentes.