[New - Windows NT]
RasDialFunc2函数是在远程访问连接过程中发生状态更改时,RasDial函数调用的应用程序定义或库定义的回调函数。RasDialFunc2函数与RasDialFunc1回调函数类似,不同之处在于它提供了多链接连接的附加信息。
DWORD WINAPI RasDialFunc2(
DWORD 【dwCallbackId】, | //在RasDial调用中指定的用户定义值 |
DWORD 【dwSubEntry】, | //多连接中的子条目索引 |
HRASCONN 【hrasconn】, | //处理RAS连接 |
UINT 【unMsg】, | //发生的事件类型 |
RASCONNSTATE 【刮】, | //要输入的连接状态 |
DWORD 【dwError】, | //可能发生的错误 |
DWORD 【dwExtendedError】 | //有一些错误的扩展错误信息 |
); |
参数
【dwCallbackId】
提供在RASDIALPARAMS结构中RASDIALPARAMS结构中传递给RasDial的结构中指定的应用程序定义值。
【dwSubEntry】
指定与此连接相关联的电话簿条目的子条目索引。此值表示生成此呼叫到您的RasDialFunc2回调函数的子条目。
【hrasconn】
提供RasDial返回的RAS连接的句柄。
【unMsg】
指定发生的事件的类型。目前,唯一定义的事件是WM_RASDIALEVENT。
【刮】
指定RASCONNSTATE枚举器值,该值指示RasDial远程访问连接进程即将进入的状态。
【dwError】
指定发生的错误。如果没有发生错误,【dwError】为零。
在RasDialFunc2功能调用RasDialFunc2时,【dwError】在进入每个连接状态时设置为零。如果在一个状态内发生错误,RasDial再次使用非零【dwError】号调用RasDialFunc2.
在某些错误情况下,【dwExtendedError】参数包含扩展错误信息。
【dwExtendedError】
指定【dwError】某些非零值的扩展错误信息。对于【dwError,dwExtendedError】的所有其他值为零。
【dwExtendedError】的内容定义为【dwError】的值如下:
【dwError】 | 【dwExtendedError】 |
ERROR_SERVER_NOT_RESPONDING | 指定发生的NetBIOS错误。 |
ERROR_NETBIOS_ERROR | 指定发生的NetBIOS错误。 |
ERROR_AUTH_INTERNAL | 指定内部诊断代码。 |
ERROR_CANNOT_GET_LANA | 指定路由错误代码,这是RAS错误。 |
返回值
如果RasDialFunc2函数返回非零值,则RasDial将继续发送回调通知。
如果RasDialFunc2函数返回零,则RasDial将停止发送所有子条目的回调通知。
备注
在RasDialFunc2回调函数的呼叫期间,RasDial连接操作被暂停。因此,您的RasDialFunc2实施应通常尽可能快地返回。该规则有两个例外。异步(慢)设备如调制解调器通常具有以秒为单位而不是毫秒的时间间隔;来自RasDialFunc2函数的不太及时的返回通常不是问题。当【dwError】非零时,提示返回要求也不适用,表示发生错误。例如,安装一个错误对话框并等待用户输入是安全的。
您的RasDialFunc2实施不应取决于特定RASCONNSTATE连接状态的顺序或发生,因为这可能因平台而异。
不要在RasDialFunc2回调函数内调用RasDial函数。您可以从回调函数内调用RasGetConnectStatus,RasEnumEntries,RasEnumConnections,RasGetErrorString和RasHangUp函数。例如,从回调函数内调用RasGetConnectStatus将有助于确定连接设备的名称和类型。
请注意,为方便起见,RasHangUp可以在RasDialFunc2回调函数内调用。但是,在返回RasDialFunc2回调函数之后,大部分的挂起处理都会发生。
RasDialFunc2是应用程序定义或库定义的函数名称的占位符。
也可以看看
RasDial, RasDialFunc, RasDialFunc1, RASCONNSTATE, RasEnumConnections, RasEnumEntries, RasGetConnectStatus, RasGetErrorString, RasHangUp