Compartilhar via


Manipuladores de notificação

Uma chamada RasDial assíncrona deve especificar um manipulador de notificação. Durante uma operação de conexão assíncrona, o Gerenciador de Conexões de Acesso Remoto usa o manipulador de notificação para informar o cliente RAS sempre que o estado da conexão for alterado ou ocorrer um erro.

As ações executadas por um manipulador de notificação podem ser divididas nas seguintes categorias:

Há três tipos de manipuladores de notificação, cada um recebe as mesmas informações básicas: o estado de conexão atual e um código de erro diferente de zero somente se ocorrer um erro.

Valor Definição
RasDialFunc Um protótipo de função de retorno de chamada que recebe apenas o estado de conexão atual e as informações de código de erro.
RasDialFunc1 Um protótipo de função de retorno de chamada que recebe o identificador de conexão HRASCONN e informações de erro estendidas, além das informações básicas. O parâmetro de identificador de conexão torna RasDialFunc1 útil para aplicativos cliente que dão suporte a várias operações de conexão simultâneas. Isso permite que o cliente especifique a mesma função de retorno de chamada para todas as operações e permite que a função de retorno de chamada determine qual conexão está alterando os estados.
RasDialFunc2 Uma função de retorno de chamada semelhante a RasDialFunc1. No entanto, RasDialFunc2 é aprimorado para dar suporte a conexões multilink.
Identificador de janela Um identificador de janela para o qual o RAS envia WM_RASDIALEVENT mensagens que contêm o estado de conexão atual e as informações de código de erro. Use esse método se o código-fonte precisar ser compatível com o Windows de 16 bits, pois o Windows de 16 bits não dá suporte a nenhuma das funções de retorno de chamada.

 

O Gerenciador de Conexões de Acesso Remoto suspende a operação de conexão até que o manipulador de notificação retorne. Por esse motivo, o manipulador deve retornar o mais rápido possível, a menos que ocorra um erro.

A função RasDial não deve ser chamada de dentro de um manipulador de notificação. As outras funções de acesso remoto ( RasGetConnectStatus, RasEnumEntries, RasEnumConnections, RasGetErrorString e RasHangUp) podem ser chamadas de dentro de um manipulador.