Err.exe でエラーコードの定義を探す

NTSTATUS や、GetLastError() で得た Win32 エラーコードの定義がすぐにわからなくて困ったことはありますか?

 

今回は、そのような方のために、エラーコードの定義を探すのに便利なErr.exe をご紹介します。

 

    1. 入手手順

 

    1. Err.exe は、以下のサイトからダウンロードしていただけます。

 

Microsoft Exchange Server Error Code Look-up

< https://www.microsoft.com/en-us/download/details.aspx?id=985 >

 

    1. ダウンロードしたErr.EXE は自己解凍プログラムのため、実行すると、解凍先フォルダを求められます。
    1. 解凍先を指定して解凍すると、以下のファイルが確認できます。このErr.exe が目的のツールです。

 

2004/04/01  18:18         1,698,816Err.exe

2004/04/01  18:26           505,344Error Code Lookup Tool.doc

2004/04/01  17:43            13,372eula.txt

 

 

    1. 使い方

 

使い方は、コマンドプロンプトを起動し、「err.exe< エラーコード>」を実行するだけです。

 

今回は、例として、0xe000023c というエラーコードで実行してみます。

 

> Err.exe 0xe000023c

# for hex 0xe000023c / decimal -536870340 :

  ERROR_NOT_AN_INSTALLED_OEM_INF                                setupapi.h

# 1 matches found for "0xe000023c"

 

上記のように、setupapi.h に定義されたERROR_NOT_AN_INSTALLED_OEM_INF であるということがわかりました。

 

WDK/SDK のヘッダファイルのある C:\Program Files (x86)\Windows Kits\10\Include\{バージョン番号} のフォルダ内を、e000023c で検索しても見つかりませんが、上記のようにErr.exe で見つかったERROR_NOT_AN_INSTALLED_OEM_INF で検索すると、setupapi.h に以下のように定義されていることがわかります。

 

#define ERROR_NOT_AN_INSTALLED_OEM_INF           (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23C)

 

このような定義となっている場合でも、上記のツールを使うことで、エラーコードの定義を探していただくことができます。

 

より詳細な使い方や制限事項は、以下の弊社ブログをご参考にしていただければ幸いです。

 

  • 参考文献

重箱の隅のデバッグ(2) – エラーの意味を探る

< https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2012/05/17/2/ >

 

上記の内容が、ドライバやアプリケーションを開発される方のお役に立てば幸いです。

 

WDK サポートチーム 津田