На что это указывает, когда RasGetConnectStatus возвращает значение 6? - PullRequest
0 голосов
/ 22 марта 2011

Я пытаюсь запросить 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 ]

1 голос
/ 25 июля 2011

Самым простым способом поиска кодов ошибок Win32 является просмотр файлов заголовков непосредственно в Windows SDK.Большинство из них находятся в файле WinError.h в папке include, куда бы вы ни установили Windows SDK.Для ошибок, относящихся к RAS (результат будет между 600 и 900), они находятся в файле RasError.h.

В случае, если ваш результат равен 6, он указывает на ERROR_INVALID_HANDLE;что в RAS означает, что ему не нравится дескриптор соединения, который вы передали функции.В вашем примере кода это будет _handle.

Кстати, вы можете посмотреть на использование проекта DotRas на CodePlex, это оболочка .NET вокруг RAS API.Конкретный метод, который вас интересует, будет 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

Надеюсь, это поможет!

0 голосов
/ 22 марта 2011

Здесь вы должны найти свой ответ http://msdn.microsoft.com/en-us/library/aa920538.aspx это перечисленные значения RASCONNSTATE, возвращаемые RasGetConnectStatus.Значение 6 должно быть равно RASCS_AuthNotify, и вы найдете это описание:

Произошло событие аутентификации.Если dwError равен нулю, за этим событием сразу же следует одно из следующих конкретных состояний аутентификации.Если dwError не равен нулю, аутентификация не удалась, и значение ошибки указывает, почему.

Возможно, связано с некоторыми правилами брандмауэра, которые блокируют соединение.

обновить ссылку с Windows Mobile6.5 документациядля windows это ссылка .

...