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,816 Err.exe 2004/04/01  18:26           505,344 Error Code Lookup Tool.doc 2004/04/01  17:43            13,372 eula.txt     使い方   使い方は、コマンドプロンプトを起動し、「err.exe< エラーコード>」を実行するだけです。   今回は、例として、0xe000023c というエラーコードで実行してみます。   >…


Process Monitor で OS 起動時のログを採取する手順

今回は、Process Monitor で OS 起動時のログを採取する手順である、Enable Boot Logging オプションを実行する手順をご案内します。   Process Monitor については、以前「Process Monitor」の記事でもご案内しておりますので、ご参考ください。こちらの記事の手順では、OS 起動後にログオンしてからシャットダウンを開始する前までの任意のタイミングをカバーしています。(その間に、Process Monitor を実行し、現象を再現させ、ログを取得することを前提にしています。) 対しまして、今回の手順は、Process Monitor のEnable Boot Logging を設定した後、OS を再起動しますが、その起動中から、明示的にログ採取を完了させるまでログを取得し続けます。そのため、OS 起動中だけでなく、シャットダウン時のログも取得できます。   [手順] 以下のサイトからProcess Monitor をダウンロードします。   Process Monitor v3.50 https://docs.microsoft.com/en-us/sysinternals/downloads/procmon   Download Process Monitor (981 KB)   ダウンロードしたProcessMonitor.zip を問題が発生している環境の任意のフォルダーに置き、unzipします。 Procmon.exe を実行します。 管理者権限が必要であるため、権限が不足している場合は、昇格ダイアログが表示されます。 管理者権限となるよう昇格ダイアログを操作します。(ユーザ名とパスワードの入力や昇格の[はい]・[いいえ]の選択など) Process Monitor の起動後、自動的にファイルシステム、レジストリ、プロセスおよびスレッドの活動の記録を開始し始めます。(起動オプションに/NoConnect を指定すると自動ログ機能は動作しません。) 虫眼鏡のアイコン([Capture] ボタン) をクリックし、記録を停止します。下記の画面の上部の赤い四角で囲った部分が [Capture]…


MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法

MSDN サブスクリプションの特典として付属している、テクニカル サポートのインシデントを利用して、ドライバー開発に関連したお問い合わせをする方法について、ご案内いたします。   流れとしては、大きく 2 段階あります。   [1] お電話でインシデントをアクティベーションしてアクセス ID と契約 ID を取得 (※初回またはご契約更新後の初回のみ必要) [2] Web から「法人のお客様向け 技術サポート窓口」のページからお問い合わせ   すでに [1] の ID をお持ちの方は、[2] へお進みいただけます。ただ、MSDN サブスクリプションのご契約を更新いただいた場合、改めて [1] が必要になります。   [1] お電話でインシデントをアクティベーションしてアクセス ID と契約 ID を取得   以下のいずれかにお電話をいただき、MSDN サブスクリプションの特典インシデントの有効化(アクティベーション) を行っていただき、アクセス ID と契約 ID を取得します。   カスタマー サービス (0120-750052) サポート契約センター (0120-17-0196)   いずれも営業時間は 9:00-17:30 (土日祝日、弊社指定休業日を除く) です。…


米国時間の第 4 火曜日にリリースされる Windows 10 のアップデートについて

米国時間の第4 火曜日(日本時間の第4 水曜日) にリリースされたWindows 10 のアップデートが環境によって検出されずお困りになったことはありますでしょうか?   この第4火曜日にリリースされるアップデートは、通常、毎月第 2 火曜日に公開されるアップデートと同様、Update Catalog / WSUS / Windows Update にて公開されます。 ただし、Windows Update に関しては、以下の違いがあるため、冒頭の現象が発生します。 (a) Windows Update for Business では公開されません (b) 明示的にWindows Update で利用可能な更新を検索したユーザーのみに公開されます   Windows Update for Business については、Windows 10 1703 (RS2) より、UI から設定が変更可能となっています。(以下の画像)         Windows Update のページにある[詳細オプション] から”Current Branch for Business” となっている場合、Windows Update for Business…


カーネルモード デバッガで UMDF ドライバをライブデバッグする

UMDF ドライバをデバッグする際に、ユーザーモード デバッガでWUDFHost.exe にアタッチしてライブデバッグするだけではデバッグしきれなくて困ったことはありませんか?   例えば、OS のシャットダウン中の処理をデバッグしたい場合、ユーザーモード デバッガを操作している画面がシャットダウン中になるため、デバッガをその画面から操作できなくなります。   そこで、今回は、カーネルモード デバッガ(windbg.exe) でUMDF ドライバをデバッグする方法をご紹介します。カーネルモード デバッガからであれば、画面がシャットダウン中であっても、UMDF ドライバのブレークポイントで止めて、ライブデバッグすることができます。   具体的には、以下の手順で進めます。   ターゲットPC へのUMDF2 ドライバのインストール ターゲットPC へのWDFVerifier.exe のコピー カーネルモードデバッガをターゲットPC にアタッチ WDFVerifier.exe によるターゲット PC の設定 動作確認   今回は、例として、デバッガのホストPC、ターゲットPC ともにWindows 10 (1703) x86 で行います。また、サンプルドライバをビルドする開発用PC はデバッガのホストPC と同一とします。   1.ターゲットPCへのUMDF2 ドライバのインストール   ターゲットPC にUMDF2 ドライバをインストールします。今回は、例として、UMDF2 のToaster Sample のwdffeaturedum.dll を使用します。   サンプルの入手とビルド方法は、以下のエントリの「1. サンプルの入手」と「2. サンプルのビルド」をご参照ください。…


デバイスマネージャーの [表示] を [デバイス (接続別)] に切り替える

切り分けのために、接続したデバイスと PC のバスとの間でどんなドライバーが動いているか知りたいと思ったことはありますか?   皆さん、こんにちは。Windows Driver Kit サポートチームの津田です。今回は、そんな皆様に、デバイス マネージャーの [表示] を、デフォルトの [デバイス (種類別)] から [デバイス (接続別)] に切り替え、各デバイス ノードからドライバーを確認できるところをお見せしたいと思います。また、同じドライバー構成をカーネルデバッガーでデバイス ノードをたどって確認する方法もご紹介します。   今回、例として Windows 10 (1607) x86 を使います。   1. [スタート] メニューを右クリックして、[デバイス マネージャー] をクリックして、デバイス マネージャーを起動します。 2. 任意のデバイスをクリックします。今回は例として、[ディスクドライブ] にある [Virtual HD ATA Device] をクリックします。     3. 上図のように、[表示] をクリックすると、[デバイス (種類別)] となっているので、[デバイス (接続別)] をクリックします。     4. 上図の通り、対象デバイスが接続されている場所がツリー状に表示されます。上記の例では、以下のツリーになっています。  …


アクティブメモリダンプ

皆様、アクティブメモリダンプはご存知でしょうか。Windows 10 から追加された新しいダンプファイルの形式です。   いかがお過ごしでしょうか。WDK サポートチームの石沢です。 アクティブメモリダンプは、その特徴として、完全メモリダンプよりファイルサイズを抑えられることが挙げられます。 また、カーネルメモリダンプには存在しない、一部のユーザー空間のメモリ情報が付加されることも挙げられるでしょう。 上記のような特徴から、完全メモリダンプを出力するほどストレージの空き容量に余裕がない、出力に時間がかかってしまう、またカーネルメモリダンプでは情報が足りないという場合の選択肢として考えられます。 もちろんデバッグ時に、潤沢なリソースや環境がある場合は、完全メモリダンプを取得いただくことをお勧めいたします。   取得方法はいたって簡単! 先日の津田さんが執筆された記事「完全メモリダンプ採取の設定方法」の手順 (4) では [完全メモリダンプ] を選択しているのですが、こちらを [アクティブ メモリ ダンプ] に変更するだけです。     あとはダンプファイルを生成して、コールスタックを確認すれば…ユーザー空間の情報が残っていることが確認できますね! 以下の例では、ntdll や USER32 などのユーザー空間上の処理がコールスタックから確認することができています。   kd> k ChildEBP RetAddr  (…略…) 0008f5d4 76f75b83 NotMyfault+0x21f9 0008f600 76f56d5a USER32!_InternalCallWinProc+0x2b 0008f688 76f565dd USER32!UserCallDlgProcCheckWow+0x102 0008f6dc 76f72b32 USER32!DefDlgProcWorker+0xad 0008f6f8 76f75b83 USER32!DefDlgProcA+0x22 0008f724 76f59d1a USER32!_InternalCallWinProc+0x2b 0008f7bc 76f59af5 USER32!UserCallWinProcCheckWow+0x1aa 0008f818…


完全メモリダンプ採取の設定方法

Windows でブルースクリーンが発生した際に、完全メモリダンプを採取できるようにするための手順をご案内します。   Windows 7までの OS の場合は、「メモリダンプに !analyze -v するまで・前編 ~ ダンプの取り方~」<https://blogs.msdn.microsoft.com/jpwdkblog/2009/06/03/analyze-v-2/> のエントリの「1. カーネル デバッグと完全メモリ ダンプ ファイル」をご参照ください。   Windows 8以降は、以下の手順となります。   (1)  Windows 8 では [スタート画面] の画面左下端、Windows 8.1 では [スタート] (画面左下端 Windows アイコン) を右クリックし、[システム] をクリックします。 (※ ただし、Windows 8 でサポートをご提供するためには、2016 年 1 月 12 日以降 Windows 8.1 にしていただく必要があります。)   (2) [システムの詳細設定] をクリックします。   (3) [システムのプロパティ] の…


Kernel Debugger 接続インターフェース

カーネルデバッガを接続するときに、どんな接続インターフェースを利用できるのか気になったことはありませんか? 皆様、いかがお過ごしでしょうか。WDK サポートチームの石沢です。今回は Windows OS バージョンとカーネルデバッガの接続インターフェースの関係についてまとめてみました。ホスト及びターゲットに実装されているインターフェースおよび OS バージョンから使用可能な接続形式を選択ください。 接続インターフェース ホスト OS バージョン ターゲット OS バージョン RS-232C 任意のバージョン 任意のバージョン IEEE1394 任意のバージョン 任意のバージョン USB 2.0 任意のバージョン 任意のバージョン USB 3.0 Windows 8 以降 Windows 8 以降 Ethernet 任意のバージョン Windows 8 以降 ちなみに本ブログでは、USB 2.0、USB 3.0、Ethernet での具体的な接続方法をご案内差し上げておりますので、上記表にて接続インターフェースを選択いただき、以下の記事にて具体的な接続方法をご確認いただければ幸いです。 USB 2.0: USB 2.0 カーネル デバッグ 前編 USB 2.0 カーネル デバッグ 後編 USB…


Windows 10 update history 公開

新しいビルド番号のWindows 10 がリリースされた時、ご自身のソフトに影響しそうな改善・修正が含まれていないか気になりませんか?   皆さん、こんにちは。WDK サポートチームの津田です。今回は、そのような内容が気になる皆様のために、Windows 10 のリリースノートとして、今月より公開が始まりました “Windows 10 update history” のページをご紹介します。URL は以下です。   Windows 10 update history http://windows.microsoft.com/en-us/windows-10/update-history-windows-10   Windows 10 は、現在主要なバージョンには「2015 年 7 月にリリースされた初期バージョン (10240)」と「2015 年 11 月にリリースされたバージョン 1511 (10586)」があります。上記のサイトでは、それぞれへの修正の概要が記載されています。現時点では、2 月 9 日にリリースされた更新の修正情報のみが記載されています。   また、上記ページの右側に、以下のページへのリンクがあります。   Windows 10 release information https://technet.microsoft.com/ja-jp/windows/release-info   このページでは、Windows 10 のビルド番号と KB 番号の対応関係の履歴を公開しています。   Windows 10 で何らかお困りの現象が発生した場合には、上記のサイトをご確認いただくことで、以下の切り分けにご利用いただけるかと存じます。  …