Requisitos do servidor DLL
Enquanto a maioria das DLLs pode ser executada em um substituto, algumas DLLs não podem.
A DLL deve ser bem comportada se você quiser usar o substituto fornecido pelo sistema. Por exemplo, uma DLL que chama métodos que registram retornos de chamada do cliente tentaria invocar esses retornos de chamada como se os ponteiros de função que recebeu fossem instruções em seu espaço de endereço, o que não é o caso. Da mesma forma, uma DLL que usa uma variável global que espera que o cliente acesse não funcionaria. Em geral, os parâmetros que não podem ser empacotados corretamente impedirão que o servidor DLL seja executado fora do processo do cliente. Em muitos casos, você pode escrever um substituto personalizado projetado especificamente para compensar o comportamento "ruim". (Para obter mais informações, consulte Escrevendo um substituto personalizado.)
Se o servidor DLL usa interfaces personalizadas, você teria que garantir que o código de empacotamento esteja disponível para essas interfaces. Por exemplo, você pode criar e registrar uma DLL de proxy ou fornecer e registrar uma biblioteca de tipos que permita que o servidor funcione corretamente durante a execução em um substituto.
Os servidores DLL serão carregados apenas em um processo substituto em execução no contexto de segurança adequado. O contexto de segurança para o substituto do servidor DLL é determinado da mesma maneira que para servidores EXE. O substituto do servidor DLL é executado no mesmo contexto de segurança que o cliente, a menos que um valor RunAs , que determina o contexto de segurança, seja definido na seção do Registro AppID do servidor.
Tópicos relacionados