RasSecurityDialogReceive 函数 (rasshost.h)
RasSecurityDialogReceive 函数启动异步操作,该操作接收远程用户对安全质询的响应。 响应是用户在远程计算机上的终端窗口中键入的输入。 第三方 RAS 安全 DLL 在对远程用户进行身份验证时调用此函数。
若要调用此函数,请先调用 LoadLibrary 函数以加载 Rasman.dll。 然后调用 GetProcAddress 函数以获取 DLL 的 RasSecurityDialogReceive 入口点。
语法
DWORD RasSecurityDialogReceive(
[in] HPORT hPort,
[in] PBYTE pBuffer,
[in] PWORD pBufferLength,
[in] DWORD Timeout,
[in] HANDLE hEvent
);
parameters
[in] hPort
指定 RAS 服务器在此身份验证事务的 RasSecurityDialogBegin 调用中传递给安全 DLL 的端口句柄。
[in] pBuffer
指向在 RasSecurityDialogBegin 调用中传递给安全 DLL 的接收缓冲区的指针。 异步接收操作成功完成后,此缓冲区将指定来自远程用户的响应。
[in] pBufferLength
指向 WORD 变量的指针。 此变量必须指定 pBuffer 缓冲区的大小(以字节为单位)。 完成接收操作后, 变量指示 pBuffer 缓冲区中返回的字节数。
[in] Timeout
指定超时期限(以秒为单位),在此时间段后,RAS 服务器将 hEvent 事件对象设置为信号状态。
如果此值为零,则没有超时期限;也就是说,RAS 服务器在完成接收操作之前不会向事件对象发出信号。
[in] hEvent
指定 CreateEvent 函数创建的事件对象的句柄。 当接收操作完成或超时期限已过时,RAS 服务器将事件对象设置为信号状态。
返回值
如果函数成功,则返回值为 PENDING (raserror.h) 中定义。 这表示正在执行接收操作。
如果发生错误,则返回值为 Raserror.h 或 Winerror.h 中定义的错误代码之一。 GetLastError 不提供扩展的错误信息。
注解
调用 RasSecurityDialogSend 函数向远程用户发送安全质询后,安全 DLL 必须调用 RasSecurityDialogReceive 函数以获取用户的响应。
RasSecurityDialogReceive 函数是异步函数。 当函数返回时,安全 DLL 必须使用等待函数之一(如 WaitForSingleObject)来等待 向 hEvent 事件对象发出信号。 当接收操作完成或超时间隔已过时,RAS 服务器向事件对象发出信号。 如果接收操作成功, 则 pBuffer 缓冲区包含来自远程用户的响应, pBufferLength 参数指示收到的字节数。 如果远程用户发送的字节数超过缓冲区中容纳的字节数,RAS 服务器将缓冲多余的字节,并在下一个 RasSecurityDialogReceive 调用中返回这些字节。
使用 Timeout 参数指定超时间隔。 如果超时已过,RAS 服务器会向事件对象发出信号, pBufferLength 参数指示传输了零个字节。 或者,将 Timeout 设置为零,并在用于等待事件对象的 wait 函数中指定超时间隔。
当安全 DLL 对远程用户进行身份验证时,远程计算机上的连接操作将进入RASCS_Interactive暂停状态。 RasSecurityDialogSend 发送的消息在远程计算机上的终端窗口中显示为输出。 RasSecurityDialogReceive 收到的响应是远程用户在终端窗口中键入的输入。 RASCS_Interactive值在 RASCONNSTATE 枚举中定义。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rasshost.h |
DLL | Rasman.dll |