我正在尝试查询连接的RasStatus。当我调用RasGetConnectStatus方法时,它返回6.我没有在我读过的任何文档中找到特定的返回值。
以下是我看过的一些页面:
http://www.cs.scranton.edu/~beidler/Ada/win32/win32-raserror.html
http://msdn.microsoft.com/en-us/library/aa920162.aspx
http://msdn.microsoft.com/en-us/library/bb530704(v=vs.85).aspx
我正在使用C#和.net 4.0
编辑:实际调用的代码如下:
uint result;
RASCONNSTATUS rasconnstatus; // http://pinvoke.net/default.aspx/Structures/RASCONNSTATUS.html
// _handle is previously set to the hwnd of the ras connection
result = RASAPI.RasGetConnectStatus(_handle, out rasconnstatus);
return rasconnstatus;
返回时,结果== 6和rasconnstatus.rasconnstate == 0
我需要知道的是为什么结果== 6。
答案 0 :(得分:1)
查找Win32错误代码的最简单方法是直接在Windows SDK中查看头文件。它们中的大多数都位于安装Windows SDK的include文件夹中的WinError.h文件中。对于RAS特定错误(结果将介于600和900之间),这些错误位于RasError.h文件中。
如果结果为6,则表示ERROR_INVALID_HANDLE;在RAS中,这意味着它不喜欢您传递给函数的连接句柄。在您的代码示例中,这将是_handle。
顺便说一句,您可能希望在CodePlex上使用DotRas项目,它是围绕RAS API的.NET包装器。您感兴趣的特定方法是RasConnection.GetConnectionStatus,它返回该结构中的数据。
foreach (RasConnection conn in RasConnection.GetActiveConnections())
{
RasConnectionStatus status = conn.GetConnectionStatus();
// Do something useful.
}
WinError.h文件也可在线获取:http://msdn.microsoft.com/en-us/library/ms819772.aspx
希望有所帮助!
答案 1 :(得分:-1)
在这里,您应该找到答案http://msdn.microsoft.com/en-us/library/aa920538.aspx这是RasGetConnectStatus返回的RASCONNSTATE的枚举值。值6应该等于RASCS_AuthNotify,您将找到以下描述:
发生了身份验证事件。如果dwError为零,则此事件将紧跟其后一个更具体的身份验证状态。如果dwError非零,则身份验证失败,错误值指示原因。
可能与某些阻止连接的防火墙规则有关。
更新链接是从windows mobile 6.5文档。 对于这个link的窗户。