Compartilhar via


Função RasSecurityDialogReceive (rasshost.h)

A função RasSecurityDialogReceive inicia uma operação assíncrona que recebe a resposta de um usuário remoto a um desafio de segurança. A resposta é a entrada que o usuário digitou em uma janela de terminal no computador remoto. Uma DLL de segurança RAS de terceiros chama essa função como parte de sua autenticação do usuário remoto.

Para chamar essa função, primeiro chame a função LoadLibrary para carregar Rasman.dll. Em seguida, chame a função GetProcAddress para obter o ponto de entrada RasSecurityDialogReceive da DLL.

Nota O Windows Server 2008, o Windows Server 2003, o Windows 2000 Server e o Windows NT Server 4.0 atualmente fornecem suporte de host de segurança RAS apenas para dispositivos serial. Não há suporte para outros tipos de conexões, como ISDN (Rede Digital de Serviços Integrados) ou conexões VPN (rede virtual privada).
 

Sintaxe

DWORD RasSecurityDialogReceive(
  [in] HPORT  hPort,
  [in] PBYTE  pBuffer,
  [in] PWORD  pBufferLength,
  [in] DWORD  Timeout,
  [in] HANDLE hEvent
);

Parâmetros

[in] hPort

Especifica o identificador de porta que o servidor RAS passou para a DLL de segurança na chamada RasSecurityDialogBegin para essa transação de autenticação.

[in] pBuffer

Ponteiro para o buffer de recebimento que foi passado para a DLL de segurança na chamada RasSecurityDialogBegin . Quando a operação de recebimento assíncrono tiver sido concluída com êxito, esse buffer especificará a resposta do usuário remoto.

[in] pBufferLength

Ponteiro para uma variável WORD . Essa variável deve especificar o tamanho, em bytes, do buffer pBuffer . Quando a operação de recebimento for concluída, a variável indicará o número de bytes retornados no buffer pBuffer .

[in] Timeout

Especifica um período de tempo limite, em segundos, após o qual o servidor RAS define o objeto de evento hEvent para o estado sinalizado.

Se esse valor for zero, não haverá um período de tempo limite; ou seja, o servidor RAS não sinaliza o objeto de evento até que a operação de recebimento seja concluída.

[in] hEvent

Especifica o identificador de um objeto de evento criado pela função CreateEvent . O servidor RAS define o objeto de evento como o estado sinalizado quando a operação de recebimento foi concluída ou quando o período de tempo limite tiver decorrido.

Valor retornado

Se a função for bem-sucedida, o valor retornado será PENDING (definido em Raserror.h). Isso indica que a operação de recebimento está em andamento.

Se ocorrer um erro, o valor retornado será um dos códigos de erro definidos em Raserror.h ou Winerror.h. GetLastError não fornece informações de erro estendidas.

Comentários

Depois de chamar a função RasSecurityDialogSend para enviar um desafio de segurança ao usuário remoto, a DLL de segurança deve chamar a função RasSecurityDialogReceive para obter a resposta do usuário.

A função RasSecurityDialogReceive é assíncrona. Quando a função retorna, a DLL de segurança deve usar uma das funções de espera, como WaitForSingleObject, para aguardar a sinalização do objeto de evento hEvent . O servidor RAS sinaliza o objeto de evento quando a operação de recebimento foi concluída ou quando o intervalo de tempo limite tiver decorrido. Se a operação de recebimento for bem-sucedida, o buffer pBuffer conterá a resposta do usuário remoto e o parâmetro pBufferLength indicará o número de bytes recebidos. Se o usuário remoto enviar mais bytes do que caberá no buffer, o servidor RAS armazenará em buffer os bytes em excesso e os retornará na próxima chamada RasSecurityDialogReceive .

Use o parâmetro Timeout para especificar um intervalo de tempo limite. Se o tempo limite passar, o servidor RAS sinalizará o objeto de evento e o parâmetro pBufferLength indicará que zero bytes foram transferidos. Como alternativa, defina Timeout como zero e especifique um intervalo de tempo limite na função de espera usada para aguardar o objeto de evento.

Quando uma DLL de segurança está autenticando um usuário remoto, a operação de conexão no computador remoto entra em um estado RASCS_Interactive pausado. A mensagem enviada por RasSecurityDialogSend é exibida como saída em uma janela de terminal no computador remoto. A resposta recebida por RasSecurityDialogReceive é a entrada que o usuário remoto digita na janela do terminal. O valor RASCS_Interactive é definido na enumeração RASCONNSTATE .

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rasshost.h
DLL Rasman.dll

Confira também

CreateEvent

GetProcAddress

LoadLibrary

Funções de administração do servidor RAS

RASCONNSTATE

RasSecurityDialogSend

Visão geral do RAS (Serviço de Acesso Remoto)

WaitForSingleObject