多くのWindowsエラーコードが0xC000xxxxで始まるのはなぜですか?それらの参照はありますか?


11

ほとんどのWindowsエラーコードは次の2つの形式のいずれかであることに気付きました。

  • 標準システムエラーコード、たとえば0x05はアクセス拒否です。
  • フォーム内のエラーコード0xC000xxxx。参照は見つかりません。

最初に、後者のエラーコードは0xC0000000何らかの理由でビット単位の論理和がとられた単なるシステムエラーコードであると考えましたが、そうではないようです。そのようにマッピングされた場合、それらは障害の性質に一致しません。

Googleでのこのようなエラーへの言及はすべて、アプリケーションのクラッシュに関連しているようですが、エラー名は提供されていません。

Nt*ntdll.dll内のAPIの一部がそれらを返すため、たとえば、不正なパラメーターで呼び出されたときにNtCreateDirectoryObject返さ0xC0000022れるため、アプリケーション固有でもないようです。

2種類のエラーコードの違いは何ですか?マイクロソフトは公式にそれらを標準エラーコードとして認識していますか?それらのリファレンスページはありますか?


回答:


7

NTSTATUS値のドキュメントには、エラー値の広範なリストがあります

たとえば、0xC0000022はを表しSTATUS_ACCESS_DENIED、これは非常に一般的な戻り値です。

多少無関係ですが、バグチェックコードのリストもあります。これらのコードは通常、BSODを受信したときに表示されます。


優秀な!そのリンクは私のブックマークに間違いなく入っています。
多項式

0

いくつかの情報(例:https: //stackoverflow.com/questions/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll)によると、0xC00xxxxxエラーコードは例外コードとしてラップされたWin32 APIの「通常の」システムエラーコード。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.