RasSecurityDialogReceive

【勇芳软件工作室】汉化HomePreviousNext

[New - Windows NT]

RasSecurityDialogReceive函数启动异步操作,从远程用户接收响应。响应是用户在远程计算机上的终端窗口中键入的输入。第三方RAS安全性DLL将此函数称为远程用户验证的一部分。

要调用此函数,必须先调用LoadLibrary函数来加载RASMAN.DLL。然后调用GetProcAddress函数来获取DLL的RasSecurityDialogReceive入口点。

DWORD WINAPI RasSecurityDialogReceive(

HPORT 【hPort】,// RAS句柄到端口
PBYTE 【p缓冲器】,//指向接收用户响应的缓冲区的指针
PWORD 【pBufferLength】,//返回接收数据的大小(以字节为单位)
DWORD 【时间到】,//超时时间,以秒为单位
HANDLE 【活动】//当操作完成时发出信号的事件
); 

参数

【hPort】

指定在此验证事务的RasSecurityDialogBegin调用中RAS服务器传递到安全性DLL的端口句柄。

【p缓冲器】

指向在RasSecurityDialogBegin调用中传递给安全性DLL的接收缓冲区的指针。当异步接收操作成功完成时,此缓冲区包含来自远程用户的响应。

【pBufferLength】

指向接收【p缓冲器】缓冲区中返回的字节数的变量的指针。

【时间到】

指定超时周期(以秒为单位),之后RAS服务器将【活动】事件对象设置为有信号状态。如果该值为零,则没有超时期;也就是说,在接收操作完成之前,RAS服务器不会通知事件对象。

【活动】

指定由CreateEvent函数创建的事件对象的句柄。当接收操作完成或超时时间过去时,RAS服务器将事件对象设置为信号状态。

返回值

如果函数成功,则返回值为PENDING(在RASERROR.H中定义)。这表示接收操作正在进行。

如果发生错误,则返回值是RASERROR.H或WINERROR.H中定义的错误代码之一。GetLastError不提供扩展错误信息。

备注

在调用RasSecurityDialogSend函数向远程用户发送安全挑战后,安全性DLL必须调用RasSecurityDialogReceive函数来获取用户的响应。

RasSecurityDialogReceive功能是异步的。当函数返回时,安全性DLL必须使用其中一个等待函数(如WaitForSingleObject)来等待【活动】事件对象发出信号。RAS服务器在接收操作完成或超时间隔过去时,向事件对象发出信号。如果接收操作成功,则【p缓冲器】缓冲区包含来自远程用户的响应,【pBufferLength】参数指示接收的字节数。

您可以使用【时间到】参数指定超时间隔。如果超时过去,RAS服务器发出事件对象的信号,【pBufferLength】参数表示传输了零个字节。或者,您可以将【时间到】设置为零,并在等待功能等待发送事件对象的等待功能中指定超时间隔。

当安全性DLL验证远程用户时,远程计算机上的连接操作将进入RASCS_Interactive暂停状态。由RasSecurityDialogSend发送的消息作为输出显示在远程计算机的终端窗口中。RasSecurityDialogReceive收到的响应是远程用户在终端窗口中键入的输入。RASCS_Interactive值在RASCONNSTATE枚举中定义。

也可以看看

CreateEvent, GetProcAddress, LoadLibrary, RASCONNSTATE, RasSecurityDialogSend, WaitForSingleObject