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

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) [システムのプロパティ] の…


ファイルシステムミニフィルタードライバーのサンプル

ファイルシステムミニフィルタードライバーには、どのようなサンプルがあるかご存知でしょうか。   皆さん、こんにちは。Windows Driver Kit サポートチームの津田です。今回は、ファイルシステムミニフィルタードライバーのサンプルにどのようなものがあるかの一覧とそれぞれがある場所についてご案内します。サンプルの場所自体は、以下のサイトの [Download ZIP] ボタンで Windows-driver-samples-master.zipをダウンロードしていただいたことを前提に、ポイントします。   <https://github.com/Microsoft/Windows-driver-samples>   AVScan   AVScan は、Anti-Virus (アンチウィルス) を目的として、ファイル内のデータをスキャンする動作を示すサンプルです。   \Windows-driver-samples-master\filesys\miniFilter\avscan フォルダにあります。     CancelSafe   ミニフィルターでのキャンセルセーフキューの使い方のサンプルです。   \Windows-driver-samples-master\filesys\miniFilter\cancelSafe フォルダにあります。     CDO   ミニフィルターでの Control Device Object (CDO) の使い方のサンプルです。ミニフィルターには、アプリケーションとの通信方法が用意されているので、必ずしもアプリケーションがミニフィルターの CDO を CreateFile でオープンして、そのハンドルを使ってミニフィルターと通信する、という必要はありません。ただ、そのような方法を必要とされる方のために、参考として公開されています。   \Windows-driver-samples-master\filesys\miniFilter\cdo フォルダにあります。   Change   ファイルの変更を検知するサンプルです。   \Windows-driver-samples-master\filesys\miniFilter\change フォルダにあります。  …


新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで

何もインストールせずにドライバーをビルドできる環境があれば嬉しい…そう思ったことはありませんか?   皆さまこんにちは。WDK サポートチームの JS です。   以前は、「Windows 10 でサンプル ドライバーをビルドするまで」で Windows 10 用に新しく公開されたキットを紹介しましたが、そのキットが、2015 年 11 月 の November Update に合わせて、新しく公開されました。また、新しいドライバービルド用の環境として、Enterprise WDK (EWDK) と呼ばれる新しいキットが公開されました。   EWDK では、コマンド ラインをベースにしたビルド環境と提供しております。また、ビルド環境もファイルでまとまっているため、詳細なインストール手順はなく、ファイルのダウンロードとシンプルなコマンドの実行だけで利用することが可能です。 Visual Studio と統合されている従来の WDK を利用するためには、事前に、マシンに Visual Studio 及び WDK を都度 インストールする必要がありましたが、コンパクトになったこの EWDK を利用することでそれらの工程を経ることなくビルドに進めることが可能となっております。   サンプル ドライバーのビルドまでのステップについて、前回のバージョンから少々 変更点がありますので、この記事では、最新のツールを利用した、Toaster サンプルのビルドまでに必要な手順を、改めてご紹介したいと思います。EWDK を使ったドライバーのビルド手順も記載しましたので、併せてご参照いただけたら幸いです。   1.    新しい Visual Studio と WDK を使った…


NameChanger File System Minifilter Driver サンプルを動かしてみる

あるボリューム内で、あるフォルダへのアクセスを別のフォルダにリダイレクトするサンプルをご紹介します。   皆さん、こんにちは。WDK サポートチームの津田です。今回は、このようなサンプルとして、NameChanger File System Minifilter Driver ファイル システム ミニ フィルタ ドライバのサンプルを使用します。これを Windows 10 にインストールして、C:\A\B というフォルダへのアクセスが C:\X\Y というフォルダへのアクセスにリダイレクトされるところをお見せしたいと思います。   1.   サンプルの入手   NameChanger File System Minifilter Driver サンプルは、以下のサイトの [Download ZIP] ボタンで Windows-driver-samples-master.zipをダウンロードすると、Windows-driver-samples-master\filesys\miniFilter\NameChanger のフォルダにあります。   https://github.com/Microsoft/Windows-driver-samples   2.   サンプルのビルド   このフォルダの NameChanger.sln を、Visual Studio 2015 で開きます。     [ソリューション ‘NameChanger’] を右クリックして [構成マネージャー] をクリックします。    …


Windows 10 バージョン 1511 (OS build 10586) でシリアルポートやパラレルポート経由で印刷できない現象が修正されました

KB3140743 (OS Build 10586.122) が米国時間 2016 年 3 月 1 日 (日本時間 2016 年 3 月 2 日) に公開されました。その中の修正の一つについてご案内します。   Windows 10 update history http://windows.microsoft.com/en-us/windows-10/update-history-windows-10   March 1, 2016 – KB3140743 (OS Build 10586.122)   Improved support for devices including some wearables, displays, and printer scenarios.   この修正により、Windows 10 バージョン 1511 (OS build 10586) で発生していた「LPT…


シリアルケーブルでのカーネルモードデバッグ設定手順

ユーザーモードのアプリケーションやドライバを開発しているからと言って、カーネルモードのデバッグをする必要がないと思っていませんか?   皆さん、こんにちは。WDK サポートチームの津田です。ユーザーモードのアプリケーションやドライバを開発していても、例えば、以下のようなトラブルシューティングのシナリオに遭遇することがございます。これらのシナリオのように一見カーネルモードのデバッグが必要ないように思われる件でも、必要に応じてカーネルモードのデバッグの設定をお願いすることがございます。   ・   一般的な CreateFile/ReadFile/WriteFile/DeviceIoControl 等の Win32 API が期待通りの動作をせず、エラーを返す場合 → カーネルモードで I/O マネージャが I/O リクエストパケット (IRP) に変換し、カーネルモードドライバーのスタックに送るので、その処理過程をライブデバッグする必要がある場合があります。   ・   スプーラサービスのように、Remote Procedure Call (RPC) で他のプロセス B からプロセス Aの関数が呼ばれた結果、ご自身のアプリケーションがプロセス A から API で取得する値が期待通りにならない。RPC の呼び出し元のプロセス B が何かを特定したい場合 → ユーザーモードデバッガで、プロセス A においてRPC の呼び出しが行われた呼び出し先の関数にブレークポイントを貼ります。現象再現時、ここにブレークします。その状態で、カーネルデバッガからブレークインすることで、他の全てのプロセスの各スレッドのコールスタックから、該当関数を呼び出しているものを確認します。これにより呼び出し元のプロセス B を確認できます。   ・   何らかのプロセスが、COM ポートなど特定のデバイスをオープンしているために、ご自身のアプリケーションはオープンできない。そのプロセスを特定したい場合 → 当該デバイスのドライバの IRP_MJ_CREATE コールバック関数でブレークポイントを貼り、再現させてブレークインすれば、どのプロセスでそのオープンが行われているか確認できる可能性があります。(システムスレッド経由など、複数のプロセスをまたがっていたりすると、もう少し調査が必要です。)   そこで、今回は、これまでカーネルモードのデバッグをする機会がなかった皆様のために、シリアルケーブルでのカーネルモードデバッグ設定手順をご案内いたします。大まかな流れは以下のようになりますが、それぞれのステップを図入りで解説します。   1.     ホスト PC…


デバッガ (WinDbg) をインストールする

カーネルモードもユーザーモードも、ライブデバッグもダンプ解析もできる、無償のデバッガ WinDbg をインストールしたことがありますか?   皆さん、こんにちは。WDK サポートチームの津田です。今回は、WinDbg をインストールしたことがない皆様のために、WinDbg をインストールする手順をご案内いたします。   今回は、インターネット接続された、Windows 10 Version 1511 x86 環境で、管理者権限を持つユーザーを前提に進めます。また、WDK 10 を既にインストールされている方は、その中にも含まれていますが、今回は WinDbg 単体 (スタンドアロンバージョン) でインストールしたいと思います。   1.    以下のページから、「Debugging Tools for Windows (WinDbg) を SDK から入手する」のリンクをクリックしてください。   WDK、WinDbg、関連ツールのダウンロード https://msdn.microsoft.com/ja-jp/windows/hardware/hh852365.aspx   デバッグ ツールの入手   Debugging Tools for Windows (WinDbg) を SDK から入手する http://go.microsoft.com/fwlink/p/?LinkId=536682   2.    以下のように、sdksetup.exe がダウンロードされるので、[実行] をクリックしてください。     3.   …


Windows 10 更新履歴 (Windows 10 update history 日本語版) を公開

Windows 10 update history のサイトが英語だけしかないと思われていませんか?   皆さん、こんにちは。WDK サポートチームの津田です。今回は、そのような皆様のために、今月より公開が始まりました “Windows 10 update history” のページの日本語版が公開されたことをご案内します。URL は以下です。   Windows 10 の更新履歴 http://windows.microsoft.com/ja-jp/windows-10/update-history-windows-10   私の前回の記事では、上記サイトを活用した切り分け方法もご案内しております。   お役に立てましたら幸いです。


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 で何らかお困りの現象が発生した場合には、上記のサイトをご確認いただくことで、以下の切り分けにご利用いただけるかと存じます。  …