新しい 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 を使った…


Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について

  [更新] 2 月 17 日 に、ダッシュボードで行われる署名の詳細に関する記述を変更しました。また、ダッシュボードの運用に関するご質問についてのご案内を追加しました。 [更新] 1 月 28 日 に、Windows 10 で無効となる署名について、ユーザーモードドライバーに関する記述を追加しました。   こんにちは。JS です。   現在、ドライバーの署名に関する今後の対応について、ドライバー開発者の多くは何かしらの質問を抱えているかもしれません。 Windows 10 のリリースに合わせて署名ポリシーに大きな変更があり、また、SHA-1 ハッシュ アルゴリズムを利用しているコード署名用証明書 (以下 SHA-1 証明書) の廃止についても、適用が開始される 2016 年 1 月 1 日が近づいているので、今後 どのような方法でドライバーの署名を行うべきか、数々のお問い合わせをいただいております。   そのような質問を出来る限り解消できるよう、現在 Windows ではどのようにドライバー署名を利用していて、今後どのように利用する予定なのか、今一度 まとめた上でご紹介したいと思います。   このエントリでは、大きく分けて以下 3 つのカテゴリーに関するご説明をさせていただきます。 1.    Windows 10 のドライバー署名ポリシーについて 2.    SHA-1 廃止ポリシーによるドライバー署名への影響について 3.    Windows ハードウェア ダッシュボードの利用について…


Windows 10 でサンプル ドライバーをビルドするまで

こんにちは。JS です。   Windows 10 がリリースされ、それに合わせて、Windows Driver Kit (以下 WDK) をはじめとする Windows 用の Kit も新しいバージョンが発表されました。今回は、その中で、Windows 10 でドライバーのビルドができるまでの必要なステップを紹介していきたいと思います。   ドライバー開発の観点から見ると、Windows 8.1 時代からツールの機能にそこまで大きな変更点はないので、このエントリは、ツールのインストールに続いて、サンプルドライバーのビルドまでを紹介します。 必要なステップは大きく分けて以下の 4 つです。   1. Visual Studio 2015 のインストール 2. Windows 10 SDK のインストール 3. Windows Driver Kit 10 のインストール 4. サンプル ドライバーのビルド   では、それぞれのステップを以下にご説明いたします。   1. Visual Studio 2015 のインストール Windows 10 に合わせてリリースされた…


Visual Studioを使ったネットワークカーネルデバッグの方法

こんにちは、JS です。     今回は、Visual Studio を使ったネットワーク接続でのカーネルデバッグについて、設定の手順を紹介したいと思います。     最近、シリアルポートがない PC が多いため、手軽に利用できるネットワークケーブルでのカーネルデバッグの接続方法に関するお問い合わせが増えております。WinDbg を使った方法は、すでに K 里さんが「ネットワークケーブルを用いたカーネルデバッグ接続の設定手順」で書かれているので、今回は Visual Studio で接続する方法をご案内したいと思います。MSDN ドキュメントにも、「Setting Up Kernel-Mode Debugging over a Network Cable in Visual Studio」の記事が用意されているので、併せてご確認いただければ幸いです。     主な手順は以下の 3 つになります。 1.環境の用意 2.Visual Studio 上での設定 3.デバッガーの動作確認     1.環境の用意 カーネルデバッグを行うためには、ホスト PC とターゲット PC の、2 台の PC が必要となります。参考として、私が使った環境を紹介したいと思います。   今回使用している OS は、ホスト・ターゲット共に Windows…


Windows Driver Kit (WDK) 8.1 がリリースされました

皆様、ご無沙汰しております。なおきお~です。 先日、Windows 8.1のリリースに伴い、Windows Driver Kit for Windows 8.1もリリースされました。 前バージョンであるWindows Driver Kit for Windows 8.0 は、Windows Kits 8.0 の一部として、Visual Studio 2012 にインテグレードしていました。 今回の Windows Driver Kit for Windows 8.1 も Visual Studio にインテグレードするという同じような方式で利用することなりますが、対象となる Visual Studio は、Visual Studio 2013 だけになります。Visual Studio 2012 には、Windows Driver Kit for Windows 8.1 をインテグレードすることができないことをお気を付けください。 さて、今回は、Windows Driver Kit for Windows 8.1 で新たに追加された項目から Windows…


WDK 8 の Help ドキュメント

久方ぶりです。まさかたです。 今回は、WDK 8 のヘルプドキュメントをローカルで見るために必要な操作について簡単にご紹介したいと思います。 以前の WDK 7.1 では、WDK のインストールにより、スタートメニューから表示可能なヘルプドキュメントがありましたが、WDK 8 からは、Visual Studio に統合されたことから、ヘルプドキュメントの見方が少し変わっておりますので、ご注意ください。 具体的には、まず Visual Studio 2012 の [ヘルプ] メニューより、[ヘルプ コンテンツの追加と削除(C)] を選択します。 すると、「Microsoft ヘルプビューアー 2.0」が表示されるので、「コンテンツの管理」のタブで、”Driver” といったキーワードで検索します。 そして、”Windows Driver Development – 英語” という検索結果が表示されるので、アクションとして、”追加” をクリックし、さらに右下にある [更新] ボタンを押します。 ちなみに、ビューアーの上部には、「コンテンツを追加すると、利用可能な更新で全てのローカルドキュメントが自動的に更新されます。」とありますが、何らかの要因で自動で更新できない場合もあるかと思いますので、右下に表示される更新の状態を定期的にチェックして、必要に応じて手動で最新のコンテンツに更新いただくのがいいかもしれません。 その結果、WDK のヘルプ ドキュメントのコンテンツのダウンロードが開始されます。 コンテンツのダウンロードが完了すると、インストール元をディスクにすると、確かにローカルに”Windows Driver Development – 英語” が保存されていることが確認できます。 そうしたら、左側のコンテンツタブを選ぶと、「ヘルプビューアーホーム」の下に「Windows Driver Development (Windows Drivers) – 英語」のトピックが出てきますので、後はこれまで通り閲覧いただければと思います。 それと、”Windows Debugging” のヘルプドキュメントも有用な情報がたくさんありますので、こちらもダウンロードしておくことをお勧めいたします。…


WDK 8 のドライバー開発の新機能

ひさかたぶりです。まさかたです。   先日、ついに Windows 8 が発売されました。巷では、各メーカー様から発売された様々な Windows 8 対応のデバイスが並んでおり、どれを購入しようか目移りしてしまいますね。 そして、Windows Driver Kit 8 については、先日のなおきお~さんの記事でも書かれていましたように、既にリリースされておりますが、皆様、使いこなしていらっしゃいますでしょうか? ご存知の通り、WDK 8 は Visual Studio 2012 に統合され、Intellisense などの従来の Visual Studio の便利な機能が使えるようになった他に、WDK 8 のドライバー開発に特化した便利な機能がいくつか追加されております。 WDK 8 で何が新しくなったのかをお知りになりたい場合は、まずは以下のリンクから見ていただくのがよろしいかと思います。   Windows 8 の新機能 http://msdn.microsoft.com/ja-jp/library/windows/hardware/hh451220(v=vs.85).aspx   そんな中で、今回は、私が使う中でこれは便利だなと思ったものとして、ビルドしたドライバーの動作確認をする際に役立つ機能を、簡単にご紹介させていただきたいと思います。 それは、Visual Studio が自動的に、① ビルドしたドライバーパッケージの INF からカタログ ファイルを生成し、② カタログ ファイルにテスト署名をした上で、③ テスト用の PC にインストールしてくれるという機能です。今までこれらの手順は、ドライバーをビルドし直す度に、手動で行う必要があったかと思いますが、WDK 8 では、これらの作業は全て自動的に行うことができるようになりました。これなら、ドライバーを手元で動作確認する場合にもとても便利です。   というわけで、さっそく具体的なやり方を順に追って見てみましょう。今回も、例によって Toaster サンプルを例に取って見てみたいと思います。サンプルコードの取得方法が分からないという方は、先日のなおきお~さんの記事をご参照ください。…


Windows Driver Kit (WDK) 8.0 がリリースされました

ご無沙汰しております。なおきお~です。 皆様、暑い日が続いいるので熱中症などにお気を付けください。 さて、8月は、ドライバ開発者の方々が熱くなるニュースとして新しい WDK 8.0 (Windows Driver Kit) がリリースされました。 そして今回のリリースでは、Visual Studio 2012 に統合されるという大幅な変更が行われています。 Windows XP の WDK 以降は、単体で開発可能なイメージであったため、少々 戸惑う方がいるかもしれませんのでサンプル コードを確認するまでの手順を紹介したいと思います。   まず、以下のサイトから WDK 8.0 をダウンロードするのですが、このURL のシステム要件に記載されている通り、予め Visual Studio Professional 2012 を入手いただきインストールをしておく必要があります。   Windows Driver Kit (WDK) 8 http://msdn.microsoft.com/ja-jp/library/windows/hardware/hh852362.aspx   要件を満たして、セットアップすると WDK 8.0 は、Program File (既定では、C:\Program Files\Windows Kits\8.0\) にインストールします。 しかし、既定では、サンプル コードはインストールしないため、以下の手順でテンプレートを使用して、ひな形を作成する必要があります。   ①     [ファイル] から[新規作成] の[プロジェクト]…


STATUS_PENDING の取り扱い方

久方ぶりです。まさかたです。 先日、素晴らしいお天気の中、東京マラソン 2011 が開催されましたね。みなさんは東京マラソンに参加されたことがありますでしょうか? 私はありません。   さて、今回の話題は、STATUS_PENDING です。 この STAUS_PENDING は、ご存知の通り、あるドライバーが、ドライバースタックの下位ドライバーに対して、IoCallDriver() を使って IRP を投げた場合に、その戻り値として返ってくる可能性のあるステータスの一つです。 STATUS_PENDING が返ってくる可能性のある処理の詳細については、以下をご参照ください。   Handling IRPs: What Every Driver Writer Needs to Know – Asynchronous I/O Responses http://msdn.microsoft.com/en-us/library/ms810023.aspx#irp_ha_topic7   A driver must return STATUS_PENDING if: Its dispatch routine for an IRP might return before the IRP is completed. It completes the IRP…


Windows Driver Kit (WDK) Version 7.1.0 がリリースされました

こんにちは。なおきお~です。    みなさま、すでにご存知かもしれませんが、先月の 2010 年 2 月 26 日に WDK 7.1.0 がリリースされました。            Windows Driver Kit (WDK) Version 7.1.0 のリリース ノート – WDK Version 7.1.0 の変更点および問題点 http://www.microsoft.com/japan/whdc/devtools/wdk/RelNotesW7.mspx#E1   WDK 7.0.0 からの主な変更点として、WDK を Windows XP x64 にもインストールできるようになったことが、変更の 第 1 点として挙げられると思います。 また、同梱されている Windows 用デバッグ ツール (Debugging Tools for Windows) のバージョンも、最新の 6.12.2.633 になりました。          Debugging…