Sobre DLLs de administração ras
A DLL de Administração ras exporta funções que o servidor RAS chama sempre que um usuário tenta se conectar ou desconectar. Aqui estão alguns dos possíveis usos para uma DLL de administração ras:
- Decida se deseja permitir que um usuário se conecte ao servidor. A DLL de administração pode fornecer uma marcar de segurança além da autenticação de usuário ras padrão.
- Registre a hora à qual cada usuário se conecta e se desconecta do servidor. Isso pode ser útil para fins de cobrança ou auditoria.
- Atribua um endereço IP a cada usuário. Isso é útil para segurança, pois esse recurso é usado para mapear a conexão de um usuário com um computador específico.
O local da DLL de Administração ras é especificado no registro; consulte Configuração do Registro de DLL de Administração ras.
O RAS dá suporte a várias DLLs de Administração. O registro dá suporte a vários locais de DLL. RAS chama as funções nas DLLs na ordem em que as DLLs são listadas no registro; consulte Configuração do Registro de DLL de Administração ras.
Windows 2000 Server: O RAS não dá suporte a várias DLLs.
Uma DLL de administração ras deve implementar e exportar todas as seguintes funções:
MprAdminLinkHangupNotification
Além disso, a DLL de administração ras deve implementar e exportar
MprAdminConnectionHangupNotification
ou
MprAdminAcceptNewConnection2 e
MprAdminConnectionHangupNotification2
Se todas as funções necessárias não forem implementadas, o RAS falhará ao iniciar.
Windows 2000 Server: Uma DLL de administração deve implementar as funções MprAdminGetIpAddressForUser e MprAdminReleaseIpAddress . Se a DLL implementar uma dessas funções, ela também deverá implementar a outra.
RAS chama a função MprAdminInitializeDll quando o Serviço de Roteamento e Acesso Remoto é iniciado pela primeira vez. A função MprAdminInitializeDll oferece uma oportunidade para a DLL de administração fazer qualquer inicialização necessária. Da mesma forma, RAS chama o serviço MprAdminTerminateDll quando o Serviço de Roteamento e Acesso Remoto é desligado. Essa função permite que a DLL de administração execute qualquer limpeza necessária antes de sair.
As funções MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification permitem que a DLL audite as conexões do usuário com o servidor. Um servidor RAS chama a função MprAdminAcceptNewConnection sempre que um usuário tenta se conectar. Essa função possibilita impedir que o usuário se conecte. A função MprAdminAcceptNewConnection também pode gerar entradas de log para cobrança ou auditoria. Quando o usuário se desconecta, o servidor RAS chama a função MprAdminConnectionHangupNotification , que pode registrar em log a hora em que o usuário se desconectou.
As funções MprAdminAcceptNewConnection2 e MprAdminConnectionHangupNotification2 são semelhantes a MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification. No entanto, quando RAS chama as funções MprAdminAcceptNewConnection2 e MprAdminConnectionHangupNotification2 , RAS passa um parâmetro adicional do tipo RAS_CONNECTION_2.
O RAS dá suporte a várias DLLs de Administração. O usuário de acesso remoto só poderá se conectar se a implementação da função MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 em cada uma das DLLs aceitar a conexão. Em outras palavras, cada DLL deve aceitar a conexão para que o usuário possa se conectar.
É possível que uma única conexão RAS use vários links ao se conectar a um servidor RAS. As funções MprAdminAcceptNewLink e MprAdminLinkHangupNotification possibilitam que a DLL de Administração gerencie links individuais em uma conexão. RAS chama MprAdminAcceptNewLink sempre que um novo link é estabelecido para uma conexão. Como todas as conexões envolvem pelo menos um link, o RAS sempre chama MprAdminAcceptNewLink imediatamente após MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 retornar, desde que MprAdminAcceptNewConnection ou MprAdminAcceptNewConnection2 aceitasse a conexão. RAS chama MprAdminLinkHangupNotification sempre que um link para uma conexão é desligado.
Como o RAS dá suporte a várias DLLs de Administração, o usuário de acesso remoto só poderá se conectar se a implementação da função MprAdminAcceptNewLink em cada uma das DLLs aceitar a conexão. Em outras palavras, cada DLL deve aceitar o link para que o link seja estabelecido.
Depois que o servidor RAS autentica um usuário, ele chama a função MprAdminGetIpAddressForUser para obter um endereço IP para o cliente remoto. Essa função fornece um esquema alternativo para mapear um endereço IP para um usuário discado. Se MprAdminGetIpAddressForUser não for implementado, um servidor RAS associará o usuário remoto a um endereço IP selecionado em um pool estático de endereços IP ou um selecionado por um servidor DHCP (Dynamic Host Configuration Protocol). A função MprAdminGetIpAddressForUser permite que a DLL substitua esse endereço IP padrão e especifique um endereço IP específico para cada usuário. A função MprAdminGetIpAddressForUser pode definir um sinalizador que faz com que o RAS chame a função MprAdminReleaseIpAddress quando o usuário se desconecta. Em seguida, a DLL pode usar MprAdminReleaseIpAddress para atualizar seu mapeamento de endereço IP para usuário.
O RAS dá suporte a várias DLLs de Administração, mas chama as funções MprAdminGetIpAddressForUser e MprAdminReleaseIpAddress apenas na primeira DLL que as implementa e exporta. RAS ignora implementações dessas funções nas outras DLLs. RAS verifica as DLLs para essas funções na ordem em que elas estão listadas no registro.
RAS serializa chamadas para a DLL de administração. Uma chamada para uma das funções da DLL para um determinado cliente RAS não preempõe uma chamada para essa função para um cliente RAS diferente; RAS não chama a função para o outro cliente até que a chamada inicial seja concluída. Além disso, a serialização se estende a determinados grupos de funções. As funções de endereço IP são serializadas como um grupo; uma chamada para MprAdminGetIpAddressForUser ou MprAdminReleaseIpAddress bloqueia chamadas em ambas as funções até que a chamada inicial seja retornada. MprAdminAcceptNewConnection e MprAdminConnectionHangupNotification também são serializados como um grupo.
RAS executa as funções que atribuem endereços IP em um processo; as funções para notificações de conexão e desconexão são executadas em outro processo. Consequentemente, a DLL não depende de dados compartilhados entre esses dois conjuntos de funções.
Não chame nenhuma das funções de administração ras ou funções de administração de usuário ras de dentro de uma função de texto explicativo. As chamadas para essas funções não retornarão quando feitas de dentro de uma função de texto explicativo.
O servidor RAS registra um erro no log de eventos do sistema se ocorrer um erro ao tentar carregar uma DLL de administração ras ou ao chamar uma das funções da DLL. Isso pode acontecer, por exemplo, se a DLL especificou o nome errado para uma função exportada ou se não incluiu o nome da função no arquivo DEF. A entrada no log de eventos indica o motivo da falha.
Windows 2000/NT: Não há suporte para várias DLLs de administração.