0

接続の 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;

これが戻ると、result == 6 および rasconnstatus.rasconnstate == 0

私が知る必要があるのは、なぜ結果 == 6 なのかということです。

4

2 に答える 2

1

Win32 エラー コードを調べる最も簡単な方法は、Windows SDK でヘッダー ファイルを直接調べることです。それらのほとんどは、Windows SDK をインストールしたインクルード フォルダーの 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

それが役立つことを願っています!

于 2011-07-25T16:09:54.007 に答える
-1

ここで答えを見つける必要がありますhttp://msdn.microsoft.com/en-us/library/aa920538.aspxこれは、RasGetConnectStatus によって返される RASCONNSTATE の列挙値です。値 6 は RASCS_AuthNotify に等しい必要があり、次の説明が表示されます。

認証イベントが発生しました。dwError がゼロの場合、このイベントの直後に、より具体的な認証状態のいずれかが続きます。dwError がゼロ以外の場合、認証は失敗し、エラー値はその理由を示します。

接続をブロックするファイアウォール ルールに関連している可能性があります。

リンクを更新するのは、Windows Mobile 6.5 のドキュメントからのものです。Windows の場合は、このリンク.

于 2011-03-22T09:16:19.980 に答える