RasDialFunc1函数是在远程访问连接过程中发生状态更改时,RasDial函数调用的应用程序定义或库定义的回调函数。RasDialFunc1功能与RasDialFunc功能相当,但通过添加两个参数来增强:RAS连接的句柄和扩展错误代码。
VOID WINAPI RasDialFunc1(
HRASCONN 【hrasconn】, | //处理RAS连接 |
UINT 【unMsg】, | //发生的事件类型 |
RASCONNSTATE 【刮】, | //要输入的连接状态 |
DWORD 【dwError】, | //可能发生的错误 |
DWORD 【dwExtendedError】 | //有一些错误的扩展错误信息 |
); |
参数
【hrasconn】
提供RasDial返回的RAS连接的句柄。
【unMsg】
指定发生的事件的类型。目前,唯一定义的事件是WM_RASDIALEVENT。
【刮】
指定RASCONNSTATE枚举器值,该值指示RasDial远程访问连接进程即将进入的状态。
【dwError】
指定发生的错误。如果没有发生错误,【dwError】为零。
RasDial呼叫RasDialFunc1与【dwError】在进入每个连接状态时设置为零。如果在一个状态内发生错误,RasDial再次使用非零【dwError】值RasDialFunc1.
在某些错误情况下,【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错误。 |
返回值
没有。
备注
在RasDialFunc1回调函数的呼叫期间,RasDial连接操作被暂停。因此,您的RasDialFunc1实施应通常尽可能快地返回。该规则有两个例外。异步(慢)设备如调制解调器通常具有以秒为单位而不是毫秒的时间间隔;来自RasDialFunc1函数的不太及时的返回通常不是问题。当【dwError】非零时,提示返回要求也不适用,表示发生错误。例如,安装一个错误对话框并等待用户输入是安全的。
您的RasDialFunc1实施不应取决于特定RASCONNSTATE连接状态的顺序或发生,因为这可能因平台而异。
不要在RasDialFunc1回调函数内调用RasDial函数。您可以从回调函数内调用RasGetConnectStatus,RasEnumEntries,RasEnumConnections,RasGetErrorString和RasHangUp函数。例如,从回调函数内调用RasGetConnectStatus将有助于确定连接设备的名称和类型。
请注意,为方便起见,RasHangUp可以在RasDialFunc1回调函数内调用。但是,在RasDialFunc1回调函数返回后,大部分的挂起处理都会发生。
RasDialFunc1是应用程序定义或库定义的函数名称的占位符。
也可以看看
RasDial, RasDialFunc, RasDialFunc2, RASCONNSTATE, RasEnumConnections, RasEnumEntries, RasGetConnectStatus, RasGetErrorString, RasHangUp