RasGetConnectStatus返回值为6时它表示什么?

时间:2011-03-22 08:53:03

标签: c# ras

我正在尝试查询连接的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。

2 个答案:

答案 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的窗户。