RASCONNSTATE枚举类型包含指定RAS连接操作期间可能发生的状态的值。如果您使用RasDial功能建立RAS连接,则可以指定一个窗口或RasDialFunc,RasDialFunc1或RasDialFunc2回调函数来接收报告当前连接状态的通知消息。您还可以使用RasGetConnectStatus函数获取指定连接的连接状态。
typedef枚举_RASCONNSTATE {
RASCS_OpenPort = 0,
RASCS_PortOpened,
RASCS_ConnectDevice,
RASCS_DeviceConnected,
RASCS_AllDevicesConnected,
RASCS_Authenticate,
RASCS_AuthNotify,
RASCS_AuthRetry,
RASCS_AuthCallback,
RASCS_AuthChangePassword,
RASCS_AuthProject,
RASCS_AuthLinkSpeed,
RASCS_AuthAck,
RASCS_ReAuthenticate,
RASCS_Authenticated,
RASCS_PrepareForCallback,
RASCS_WaitForModemReset,
RASCS_WaitForCallback,
RASCS_Projected,
#if (WINVER >= 0x400)
RASCS_StartAuthentication, //仅Windows 95
RASCS_CallbackComplete, //仅Windows 95
RASCS_LogonNetwork, //仅Windows 95
#万一
RASCS_SubEntryConnected,
RASCS_SubEntryDisconnected,
RASCS_Interactive = RASCS_PAUSED,
RASCS_RetryAuthentication,
RASCS_CallbackSetByCaller,
RASCS_PasswordExpired,
RASCS_Connected = RASCS_DONE,
RASCS_Disconnected
} RASCONNSTATE ;
枚举器值在此处以连接状态发生的一般顺序列出。但是,您不应该编写依赖于特定RASCONNSTATE连接状态的顺序或发生的代码,因为这可能因平台而异。
枚举 | 含义 |
RASCS_OpenPort | 通信端口即将打开。 |
RASCS_PortOpened | 通信端口已成功打开。 |
RASCS_ConnectDevice | 设备即将连接。可以调用RasGetConnectStatus来确定正在连接的设备的名称和类型。 |
RASCS_DeviceConnected | 设备已成功连接。可以调用RasGetConnectStatus来确定正在连接的设备的名称和类型。 |
对于简单的调制解调器连接,RASCS_ConnectDevice和RASCS_DeviceConnected将仅被调用一次。对于拨号X.25 PAD连接,该对将首先称为调制解调器,然后称为PAD。如果配置了预连接交换机,则在任何其他设备连接之前,将对该交换机进行调用。同样,在任何其他设备连接后,该对将被用于一个后置交换机。 Windows 95:请注意,Windows 95当前不支持多级连接,如前所述的X.25 PAD连接。 | |
RASCS_AllDevicesConnected | 设备链中的所有设备已成功连接。在这一点上,建立了物理链路。 |
RASCS_Authenticate | 验证过程正在启动。在认证成功完成之前,远程访问不允许远程客户端在LAN上生成任何流量。 Windows NT或Windows 95服务器上的远程访问身份验证包括: *验证指定域中的用户名/密码。 *将客户端投影到LAN上。这意味着远程访问服务器代表客户端执行在LAN上发送和接收数据所必需的。例如,远程访问服务器可能需要添加与客户端计算机名称相对应的NetBIOS名称。 *客户端挂断并且服务器回叫的回叫处理。(用户需要远程访问服务器上的特殊权限。) *计算链路速度。正确设置传输超时以匹配远程链路的相对较慢的速度是必要的。 |
RASCS_AuthNotify | 发生身份验证事件。如果【dwError】为零,则此事件将立即跟随以下更具体的认证状态之一。如果【dwError】非零,认证失败,错误值表示为什么。 |
RASCS_AuthRetry | 客户端已经使用新的用户名/密码/域请求了另一个验证尝试。Windows NT版本3.1中不会发生此状态。 |
RASCS_AuthCallback | 远程访问服务器已请求回调号码。仅当用户在服务器上具有“按来电者设置”回调权限时,才会发生此情况。 |
RASCS_AuthChangePassword | 客户端已请求更改帐户上的密码。Windows NT版本3.1中不会发生此状态。 |
RASCS_AuthProject | 投影阶段正在开始。 |
RASCS_AuthLinkSpeed | 链路速度计算阶段正在启动。 |
RASCS_AuthAck | 认证请求正在被确认。 |
RASCS_ReAuthenticate | 重新认证(回调后)开始。 |
RASCS_Authenticated | 客户端已成功完成认证。 |
RASCS_PrepareForCallback | 该行即将断开以准备回调。 |
RASCS_WaitForModemReset | 客户端正在延迟,以使调制解调器的时间重置自己以准备回调。 |
RASCS_WaitForCallback | 客户端正在等待来自远程访问服务器的来电。 |
RASCS_Projected | 此状态发生在RASCS_AuthProject状态之后。表示投影结果信息可用。您可以通过调用RasGetProjectionInfo访问投影结果信息。 |
RASCS_StartAuthentication | 仅Windows 95:表示正在启动或重试用户身份验证。 |
RASCS_CallbackComplete | 仅Windows 95:表示客户端已被回叫并且即将恢复身份验证。 |
RASCS_LogonNetwork | 仅Windows 95:表示客户端正在登录到网络。 |
RASCS_SubEntryConnected | 拨打多线电话簿条目时,此状态表示拨号过程中已经连接了子条目。RasDialFunc2回调函数的【dwSubEntry】参数表示子条目的索引。当确定电话簿条目中所有子条目的最终状态时,如果一个或多个子条目已成功连接,则连接状态为RASCS_Connected. |
RASCS_SubEntryDisconnected | 拨打多线电话簿条目时,此状态表示拨号过程中子条目已断开连接。RasDialFunc2回调函数的【dwSubEntry】参数表示子条目的索引。 |
RASCS_Interactive | 该状态对应于RASPHONE.EXE支持的终端状态。Windows NT版本3.1中不会发生此状态。 |
RASCS_RetryAuthentication | 此状态对应于RASPHONE.EXE支持的重试身份验证状态。Windows NT版本3.1中不会发生此状态。 |
RASCS_CallbackSetByCaller | 此状态对应于RASPHONE.EXE支持的回调状态。Windows NT版本3.1中不会发生此状态。 |
RASCS_PasswordExpired | 此状态对应于RASPHONE.EXE支持的更改密码状态。Windows NT版本3.1中不会发生此状态。 |
RASCS_Connected | 连接成功 |
RASCS_Disconnected | 断开连接或连接失败。 |
备注
连接过程状态分为三类:运行状态,暂停状态和终端状态。
应用程序可以通过使用RASCS_PAUSED和RASCS_DONE位掩码执行布尔位操作来轻松确定特定状态的类。这里有些例子:
fDoneState = (state & RASCS_DONE);
fPausedState = (state & RASCS_PAUSED);
fRunState = !(fDoneState || fPausedState);
也可以看看
RasDial, RasGetConnectStatus, RasGetProjectionInfo, RASCONNSTATUS