すべての Windows エラー コードのリストはどこで見つけられますか?
-
22-08-2019 - |
質問
以前の質問で、プログラムが次のような不明瞭な値を返した場合の意味を尋ねました。
-1073741819
さて、今度は別の大きな戻り値を取得しています。
-1073740777
そして、これらすべての値のリストがどこかにあるのかどうか、そしてそれらが何を意味するのか知りたいです。
解決
一般的に、あなたは、より良い検索結果を取得します。
たとえば、あなたの最初のエラーも進に0xc0000005でで表すことができる-1073741819です。 Googleはすぐに教えてくれますので、これは、「アクセス違反」エラーです。
他のヒント
Windows エラー コード システムは拡張可能なため、考えられるすべての Windows エラー コードを 1 か所で検索できる場所はありません。ただし、次のことから始めることもできます。
- を勉強してください COMエラーコードの構造. 。エラーがどの機能から発生したかを知ると、エラーがどのヘッダー ファイルから発生したかを特定するのに役立つ場合があります。
- Visual Studio には、少なくとも 2003 年以降、
ERRLOOK
道具。Visual Studio を使用している場合は、まずこれを試してください。 - 遭遇するコードの多くは
Winerror.h
. 。そのヘッダー ファイルの内容を含む MSDN へのリンクを含めました。または、番号ごとにエラー コードのリストを確認することもできます。 これ ページ。 - 理想的には、どの関数がコードを返したかがわかっていれば、MSDN でその関数を検索し、考えられるすべての戻り値を確認できます。もちろん、参照する必要があります
Winerror.h
, 、または別のヘッダー ファイルを使用して実際の値を取得します。 - あなたはできる
find
(Unix のようにgrep
) の中にInclude
プラットフォーム SDK のディレクトリに、エラー コード全体の 16 進値、またはコード セクションのみ (つまり下位 16 ビット) の 10 進値が表示されます。使用HRESULT_CODE
それを抽出するために。上記の COM エラー コードの構造を参照してください。 - 値を貼り付けるとデータベース内でその値が検索され、その意味が表示されるエラー検索ツールがいくつかあります。見て ここ そして ここ.
- グーグル。完全な 16 進値を使用します。場合によっては、非常に役立つ情報、または少なくとも手がかりが見つかることがあります。
まあ、それらの束がここにあります、
http://msdn.microsoft.com/en -us /ライブラリ/ ms681381(VS.85).aspxのの
しかし、私はあなたの例私はGoogleのような1番号を取得するときます。
彼らの多くは(ただし、私はCOMに関連するものだと思う)=という名前のヘッダファイル<のhref =「http://msdn.microsoft.com/en-us/library/ms819772.aspx」のrelであります"noreferrer"> WINERROR.H でます。
(いくつかのバージョン)Visual Studioで、 'Tools
' メニューの下に、あなたは 'Error Lookup...
' という名前のメニュー項目を見つけるかもしれない。
NTステータス
NTステータス ※様々な施設を網羅
FACILITY_URT (0x013) *CLR 例外
結果
FACILITY_NULL (0x000)
FACILITY_RPC (0x001)
FACILITY_DISPATCH (0x002)
FACILITY_RPC_STUBS (0x003)
FACILITY_USER (0x004) *複数のライブラリで同じエラー コードを再利用できます
FACILITY_MCA_ERROR_CODE (0x005)
FACILITY_WIN32, MSDN (0x007) *標準の WINAPI エラー コード
FACILITY_WINDOWS (0x008)
FACILITY_SECURITY (0x009)
FACILITY_CERT (0x00B)
ファシリティ_インターネット (0x00C)
FACILITY_MEDIASERVER (0x00D)
FACILITY_MSMQ (0x00E)
FACILITY_SETUPAPI (0x00F)
FACILITY_SCARD (0x010)
FACILITY_COMPLUS (0x011)
FACILITY_HTTP (0x019)
FACILITY_USERMODE_FILTER_MANAGER (0x01F)
FACILITY_WINDOWSUPDATE (0x024)
FACILITY_GRAPHICS (0x026)
施設_仮眠 (0x027)
FACILITY_INK (0x028)
FACILITY_TPM_SOFTWARE (0x029)
FACILITY_UI (0x02A)
FACILITY_PLA (0x030)
FACILITY_FVE (0x031)
FACILITY_FWP (0x032)
FACILITY_WINRM (0x033)
FACILITY_NDIS (0x034)
FACILITY_USERMODE_HYPERVISOR (0x035)
FACILITY_USERMODE_VIRTUALIZATION (0x037)
FACILITY_USERMODE_VOLMGR (0x038)
FACILITY_BCD (0x039)
FACILITY_USERMODE_VHD (0x03A)
FACILITY_SDIAG (0x03C)
FACILITY_WEBSERVICES (0x03D)
FACILITY_WPN (0x03E)
FACILITY_MBN (0x054)
FACILITY_P2P (0x063)
FACILITY_BLUETOOTH_ATT (0x065)
FACILITY_AUDIO (0x066)
FACILITY_IMAPI2 (0x0AA)
FACILITY_RTC_INTERFACE (0x0EE)
FACILITY_SIP_STATUS_CODE (0x0EF)
FACILITY_PINT_STATUS_CODE (0x0F0)
FACILITY_MAX_WDSTPTMGMT (0x110)
FACILITY_WDSMCSERVER (0x121)
FACILITY_MAX_WDSMC (0x122)
FACILITY_MAX_WDSCP (0x125)
FACILITY_BACKUP (0x7FF)
FACILITY_NTDSB (0x800)
FACILITY_DIRECT3D10 (0x879)
FACILITY_DXGI (0x87A)
FACILITY_DXGI_DDI (0x87B)
FACILITY_DIRECT3D11 (0x87C)
FACILITY_DWRITE (0x898)
FACILITY_D2D (0x899)
FACILITY_DEFRAG (0x900)
FACILITY_ONLINE_ID (0xA02)
バグチェック
バグチェックコードリファレンス *別名ブルースクリーン
ここでは、C#
するのエラーコードの変換を助けるためにstring
にクラスです
public static class WinErrors
{
#region definitions
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr LocalFree(IntPtr hMem);
[DllImport("kernel32.dll", SetLastError = true)]
static extern int FormatMessage(FormatMessageFlags dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, ref IntPtr lpBuffer, uint nSize, IntPtr Arguments);
[Flags]
private enum FormatMessageFlags : uint
{
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100,
FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200,
FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000,
FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000,
FORMAT_MESSAGE_FROM_HMODULE = 0x00000800,
FORMAT_MESSAGE_FROM_STRING = 0x00000400,
}
#endregion
/// <summary>
/// Gets a user friendly string message for a system error code
/// </summary>
/// <param name="errorCode">System error code</param>
/// <returns>Error string</returns>
public static string GetSystemMessage(int errorCode)
{
try
{
IntPtr lpMsgBuf = IntPtr.Zero;
int dwChars = FormatMessage(
FormatMessageFlags.FORMAT_MESSAGE_ALLOCATE_BUFFER | FormatMessageFlags.FORMAT_MESSAGE_FROM_SYSTEM | FormatMessageFlags.FORMAT_MESSAGE_IGNORE_INSERTS,
IntPtr.Zero,
(uint) errorCode,
0, // Default language
ref lpMsgBuf,
0,
IntPtr.Zero);
if (dwChars == 0)
{
// Handle the error.
int le = Marshal.GetLastWin32Error();
return "Unable to get error code string from System - Error " + le.ToString();
}
string sRet = Marshal.PtrToStringAnsi(lpMsgBuf);
// Free the buffer.
lpMsgBuf = LocalFree(lpMsgBuf);
return sRet;
}
catch (Exception e)
{
return "Unable to get error code string from System -> " + e.ToString();
}
}
}
ここでは、35万を含む「マジカル番号データベース」は100%無料オンラインツール「 MagnumDBする」であります定数(整数、文字列、GUIDは、など)を使用すると、値で、名前で問い合わせることができ、全体のWindows SDKファイル(〜6,000ファイル)から解析されました。免責事項:私は定数を検索する年後にそれを書いた、名前、GUIDが...
ここでは3つの異なる定数(にマップ -1073741819 の結果は同じ値と同じ意味を持つ)の3つの異なるファイル、最も一般的なもののSTATUS_ACCESS_VIOLATION
で定義されます。
と -1073740777 のSTATUS_INVALID_CRUNTIME_PARAMETER
で定義されてwinnt.h
ある。
これは、整数をサポートし、整数、符号なし整数、16進数、また、生のテキスト検索に署名しました。それはまた、(C2 = C1の+ 1等)の操作によって定義された定数の値を知っています。