[New - Windows NT]
RasSecurityDialogBegin功能是Windows NT RAS服务器在远程用户尝试连接时调用的第三方RAS安全性DLL入口点。这使安全性DLL能够开始对远程用户的身份验证。
DWORD WINAPI RasSecurityDialogBegin(
HPORT 【hPort】, | // RAS句柄到端口 |
PBYTE 【pSendBuf】, | //指向发送数据缓冲区的指针 |
DWORD 【SendBufSize】, | //发送缓冲区的大小(以字节为单位) |
PBYTE 【pRecvBuf】, | //指向缓冲区的指针,用于接收数据 |
DWORD 【RecvBufSize】, | //接收缓冲区的大小(以字节为单位) |
VOID (WINAPI * 【RasSecurityDialogComplete】) | //指向完成功能的指针 |
); |
参数
【hPort】
指定RAS端口句柄。安全性DLL在其他RAS安全功能(如RasSecurityDialogSend和RasSecurityDialogReceive)中使用此句柄来标识此身份验证事务。
请注意,该句柄仅在RAS安全功能中有效;您不能在其他Win32 I / O功能中使用它。
【pSendBuf】
指向由RAS服务器分配的缓冲区的指针。安全性DLL使用此缓冲区与RasSecurityDialogSend功能发送显示在远程计算机上的RAS终端窗口中的文本。
【SendBufSize】
指定【pSendBuf】缓冲区的大小(以字节为单位)。
【pRecvBuf】
指向由RAS服务器分配的缓冲区的指针。安全性DLL使用此缓冲区与RasSecurityDialogReceive功能来接收来自远程用户的响应。
【RecvBufSize】
指定【pRecvBuf】缓冲区的大小(以字节为单位)。
【RasSecurityDialogComplete】
指定一个指向RasSecurityDialogComplete函数的指针。当安全性DLL已经完成远程用户的身份验证时,它调用此函数将结果报告给RAS服务器。
返回值
如果安全DLL成功启动认证操作,RasSecurityDialogBegin应返回NO_ERROR。在这种情况下,安全性DLL必须稍后通过调用【RasSecurityDialogComplete】参数指向的功能终止认证事务。
如果发生错误,RasSecurityDialogBegin应返回非零错误代码。在这种情况下,RAS服务器会挂起该调用,并将该错误记录在Windows NT事件日志中。返回非零错误代码会终止认证事务,因此安全性DLL不需要调用【RasSecurityDialogComplete】函数。
备注
当Windows NT RAS服务器从远程计算机接收到呼叫时,会调用注册的RAS安全性DLL导出的RasSecurityDialogBegin函数(如果有的话)。当RAS服务器调用此函数时,它会将以下信息传递给安全性DLL:
*用于识别连接的端口句柄
*指向与远程用户通信时使用的缓冲区的指针
*当验证完成时,指向RasSecurityDialogComplete函数的指针
端口句柄和缓冲区指针才有效,直到您调用RasSecurityDialogComplete终止认证事务。
您的RasSecurityDialogBegin实施必须尽快返回,因为RAS服务器被阻止,直到RasSecurityDialogBegin返回为止才能接受任何其他呼叫。RasSecurityDialogBegin函数应该复制输入参数,并创建一个线程来与远程用户进行通信和验证。
也可以看看
RasSecurityDialogComplete, RasSecurityDialogReceive, RasSecurityDialogSend