RasSecurityDialogReceive, fonction (rasshost.h)
La fonction RasSecurityDialogReceive démarre une opération asynchrone qui reçoit la réponse d’un utilisateur distant à un défi de sécurité. La réponse est l’entrée que l’utilisateur a tapée dans une fenêtre de terminal sur l’ordinateur distant. Une DLL de sécurité RAS tierce appelle cette fonction dans le cadre de son authentification de l’utilisateur distant.
Pour appeler cette fonction, appelez d’abord la fonction LoadLibrary pour charger Rasman.dll. Appelez ensuite la fonction GetProcAddress pour obtenir le point d’entrée RasSecurityDialogReceive de la DLL.
Syntaxe
DWORD RasSecurityDialogReceive(
[in] HPORT hPort,
[in] PBYTE pBuffer,
[in] PWORD pBufferLength,
[in] DWORD Timeout,
[in] HANDLE hEvent
);
Paramètres
[in] hPort
Spécifie le handle de port que le serveur RAS a transmis à la DLL de sécurité dans l’appel RasSecurityDialogBegin pour cette transaction d’authentification.
[in] pBuffer
Pointeur vers la mémoire tampon de réception qui a été passée à la DLL de sécurité dans l’appel RasSecurityDialogBegin . Une fois l’opération de réception asynchrone terminée, cette mémoire tampon spécifie la réponse de l’utilisateur distant.
[in] pBufferLength
Pointeur vers une variable WORD . Cette variable doit spécifier la taille, en octets, de la mémoire tampon pBuffer . Une fois l’opération de réception terminée, la variable indique le nombre d’octets retournés dans la mémoire tampon pBuffer .
[in] Timeout
Spécifie un délai d’attente, en secondes, après lequel le serveur RAS définit l’objet d’événement hEvent à l’état signalé.
Si cette valeur est égale à zéro, il n’y a pas de délai d’attente ; autrement dit, le serveur RAS ne signale pas l’objet d’événement tant que l’opération de réception n’est pas terminée.
[in] hEvent
Spécifie le handle d’un objet d’événement créé par la fonction CreateEvent . Le serveur RAS définit l’objet d’événement à l’état signalé lorsque l’opération de réception est terminée ou lorsque le délai d’attente s’est écoulé.
Valeur retournée
Si la fonction réussit, la valeur de retour est PENDING (définie dans Raserror.h). Cela indique que l’opération de réception est en cours.
Si une erreur se produit, la valeur de retour est l’un des codes d’erreur définis dans Raserror.h ou Winerror.h. GetLastError ne fournit pas d’informations d’erreur étendues.
Notes
Après avoir appelé la fonction RasSecurityDialogSend pour envoyer un défi de sécurité à l’utilisateur distant, la DLL de sécurité doit appeler la fonction RasSecurityDialogReceive pour obtenir la réponse de l’utilisateur.
La fonction RasSecurityDialogReceive est asynchrone. Lorsque la fonction retourne, la DLL de sécurité doit utiliser l’une des fonctions d’attente, telles que WaitForSingleObject, pour attendre que l’objet d’événement hEvent soit signalé. Le serveur RAS signale l’objet d’événement lorsque l’opération de réception est terminée ou que l’intervalle de délai d’attente s’est écoulé. Si l’opération de réception réussit, la mémoire tampon pBuffer contient la réponse de l’utilisateur distant, et le paramètre pBufferLength indique le nombre d’octets reçus. Si l’utilisateur distant envoie plus d’octets que la mémoire tampon, le serveur RAS met en mémoire tampon les octets excédentaires et les retourne dans l’appel RasSecurityDialogReceive suivant.
Utilisez le paramètre Timeout pour spécifier un intervalle de délai d’attente. Si le délai d’attente s’écoule, le serveur RAS signale l’objet d’événement et le paramètre pBufferLength indique que zéro octet a été transféré. Vous pouvez également définir Timeout sur zéro et spécifier un intervalle de délai d’attente dans la fonction d’attente utilisée pour attendre l’objet d’événement.
Lorsqu’une DLL de sécurité authentifie un utilisateur distant, l’opération de connexion sur l’ordinateur distant passe à un état RASCS_Interactive suspendu. Le message envoyé par RasSecurityDialogSend s’affiche en tant que sortie dans une fenêtre de terminal sur l’ordinateur distant. La réponse reçue par RasSecurityDialogReceive est l’entrée que l’utilisateur distant tape dans la fenêtre de terminal. La valeur RASCS_Interactive est définie dans l’énumération RASCONNSTATE .
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | rasshost.h |
DLL | Rasman.dll |
Voir aussi
Fonctions d’administration du serveur RAS