C# 当RasGetConnectStatus返回值6时,它指示什么?

C# 当RasGetConnectStatus返回值6时,它指示什么?,c#,ras,C#,Ras,我正试图查询一个连接的RasStatus。当我调用RasGetConnectStatus方法时,它返回6。在我读过的任何文档中,我都没有发现这个特定的返回值 以下是我看过的一些页面: 我正在使用C#和.NET4.0 编辑:实际调用的代码如下所示: uint result; RASCONNSTATUS rasconnstatus; // http://pinvoke.net/default.aspx/Structures/RASCONNSTATUS.html // _handle is pr

我正试图查询一个连接的RasStatus。当我调用RasGetConnectStatus方法时,它返回6。在我读过的任何文档中,我都没有发现这个特定的返回值

以下是我看过的一些页面:

我正在使用C#和.NET4.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


我需要找出的是为什么result==6。

在这里,您应该找到您的答案这是RasGetConnectStatus返回的RASCONNSTATE的枚举值。值6应等于RASCS_AuthNotify,您将发现以下描述:

发生身份验证事件。如果dwError为零,则此事件之后将立即出现以下更具体的身份验证状态之一。如果dwError为非零,则身份验证失败,错误值指示原因

可能与阻止连接的防火墙规则有关

更新链接来自windows mobile 6.5文档。
对于这个窗口

查找Win32错误代码的最简单方法是直接在Windows SDK中查看头文件。其中大多数都位于安装Windows SDK所在的include文件夹中的WinError.h文件中。对于RAS特定的错误(结果将在600到900之间),这些错误位于RasError.h文件中

如果结果为6,则表示错误\u无效\u句柄;这在RAS中意味着它不喜欢传递给函数的连接句柄。在您的代码示例中,这将是_handle

顺便说一下,您可能想看看如何在CodePlex上使用DotRas项目,它是RASAPI的.NET包装器。您感兴趣的特定方法是RasConnection.GetConnectionStatus,它从该结构返回数据

foreach (RasConnection conn in RasConnection.GetActiveConnections())
{
    RasConnectionStatus status = conn.GetConnectionStatus();
    // Do something useful.
}
WinError.h文件也可在线访问:


希望有帮助

你能给我们看几行相关的代码吗?这是不正确的。该函数不返回ras状态。成功时返回0,或返回错误值。实际状态保存在传递给此函数的第二个参数中。当发生错误时,这总是设置为0,这就是我发现的。@我在第三行发布的链接中的RichieACC清楚地说:“另外,使用RasGetConnectStatus函数获取指定连接的连接状态。”。我猜这就是你得到的回应。它也在RasGetConnectStatus的文档中指定。LPRASCONNSTATUS是一个“指向RASCONNSTATUS结构的指针,该结构在输出时接收状态信息。”在该结构中可以找到rasconnstate。抱歉,如果它不能提供帮助:(问题是我得到了dwError=6。我显然做错了什么,但我不确定是什么,而且我读过的所有文档都没有告诉我6指示了什么错误。非常感谢这些信息!我改用DotRas项目,这使我的生活变得更加轻松!