Err.exe でエラーコードの定義を探す
NTSTATUS や、GetLastError() で得た Win32 エラーコードの定義がすぐにわからなくて困ったことはありますか?
今回は、そのような方のために、エラーコードの定義を探すのに便利なErr.exe をご紹介します。
-
- 入手手順
-
- Err.exe は、以下のサイトからダウンロードしていただけます。
Microsoft Exchange Server Error Code Look-up
< https://www.microsoft.com/en-us/download/details.aspx?id=985 >
-
- ダウンロードしたErr.EXE は自己解凍プログラムのため、実行すると、解凍先フォルダを求められます。
-
- 解凍先を指定して解凍すると、以下のファイルが確認できます。この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 |
-
- 使い方
使い方は、コマンドプロンプトを起動し、「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 サポートチーム 津田