WFP Layer 2 Filtering について

こんにちは、紫陽花がきれいな季節になりましたね。WDK サポートチームのいわいだです。 Windows 8 から Layer 2 の MAC ヘッダー領域を Windows Filtering Platform のコールアウト ドライバーでフィルターできるようになっております。 今回は、その WFP Layer 2 Filtering についてご紹介します。 が、その前に一旦おさらいです。ネットワーク関連のフィルターには、    1. NDIS 中間ドライバー (NDIS IM)    2. NDIS フィルター ドライバー (NDIS Light Weight フィルター)    3. WFP コールアウト ドライバー というようにそれぞれフィルター機能を有するドライバー インターフェイスが提供されています。 ざっくりと各種フィルターの役割や用途などについて説明すると、次のようになっています。このあたりについては、過去の Blog エントリ 「Windows の Network Driver」 にもありますのであわせてご参照ください。​ 種類 1. NDIS 中間ドライバー 2….


カーネルモード デバッガで 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. サンプルのビルド」をご参照ください。…


新しい WDK for Windows 10 version 1703

[更新] 2017 年 4 月 28 日 に、インストール後の注意点に関する記述を追加しました。     Windows 10 Version 1703 のリリースに合わせて、新しい WDK が公開されました!   お花見の季節ですね、WDK サポートチームの石沢です。 新しい Windows Driver Kit (WDK) はこちらからダウンロードできますので、是非お試しください!   WDK、WinDbg、および関連ツールのダウンロード https://developer.microsoft.com/ja-jp/windows/hardware/windows-driver-kit   インストール時の注意点 WDK 1703 をインストールされる際は、以下の 2 点にご注意ください。   ・2017 年 4 月 12 日現在では、Visual Studio 2017 には対応しておりません。Visual Studio 2015 Update 3 をご利用ください ・Windows 10, version 1607…


NDIS Virtual Miniport Driver (netvmini) サンプルをインストールする

今回は、ネットワークアダプタ (または Network Interface Card: NIC) のドライバのサンプル NDIS Virtual Miniport Driver (netvmini) サンプルをご紹介します。   このサンプルは、物理 NIC を必要とせずに、NDIS ミニポートドライバの実装を確認できるサンプルです。ミニポートドライバについては、さなえすさんの以前の記事「Windows の Network Driver」をご参照ください。   今回は、このサンプルをビルドして、ターゲット側 PC の Windows 10 (1607) x86 にインストールし、デバイスマネージャー上で表示されるところまでを確認します。サンプルをビルドする、開発側の PC は Windows 10 (1607) x64 に Visual Studio 2015 と WDK 10 がインストールされています。   1. サンプルの入手   NDIS Virtual Miniport Driver (netvmini) サンプルは、以下のサイトの右側の緑色の [Clone…


Microsoft ASL Compiler (asl.exe) を使ってみる

今回は、Microsoft ASL Compiler (asl.exe) を使って、BIOS の ACPI テーブルを編集する手順をご紹介したいと思います。   Microsoft ASL Compiler (asl.exe) は、システム上の種々の ACPI テーブルの逆アセンブリ、ACPI Source Language (ASL) ファイルのコンパイル等の機能が含まれています。   Microsoft ASL compiler https://msdn.microsoft.com/windows/hardware/drivers/bringup/microsoft-asl-compiler (日本語訳 : https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn551195(v=vs.85).aspx)   これと、以下のサイトの GpioSampleKMDF.asl のサンプルを使います。   https://github.com/Microsoft/Windows-driver-samples/blob/master/gpio/samples/simdevice/kmdf/GpioSampleKMDF.asl   実際のファイルは、以下のサイトの右側の緑色の [Clone or Download] ボタンを押すと表示される [Download ZIP] ボタンで Windows-driver-samples-master.zipをダウンロードすると、Windows-driver-samples\gpio\samples\SimDevice\kmdf フォルダにあります。   https://github.com/Microsoft/Windows-driver-samples   今回は、例として、ターゲット PC としてWindows 10 (1607) x86の仮想マシンの BIOS…


V4 プリンター ドライバのデバッガアタッチ方法

V4 プリンター ドライバをデバッグするときに、どのようにデバッガをアタッチすればよいか困ったことはありませんか?   明けましておめでとうございます!WDK サポートチームの石沢です。 今回は V4 プリンタドライバのレンダリングフィルタに Visual Studio をアタッチする方法をまとめたいと思います。 なお、ドライバパッケージの作成に関しては、まさかたさんの以下の記事を参考にしてください。今回はすでにドライバパッケージが出来上がっているものとして進めます。   プリンター用デバイスアプリのサンプルを動かしてみる https://blogs.msdn.microsoft.com/jpwdkblog/2013/05/21/12427/   プリンタドライバのデバッグ方法については、基本的には A 尾さんの以下の記事が元となっているのですが、実際にレンダリングフィルタのソースコード上でブレイクするところまでやってみたいと思います。   プリンタドライバやスプーラ コンポーネントをデバッグする https://blogs.msdn.microsoft.com/jpwdkblog/2009/06/26/1246-2/   具体的なデバッグまでの道のりは以下となります。   <デバッグまでの道のり> 1. V4 プリンター ドライバのインストール 2. PrintFilterPipelineSvc サービスのタイムアウト時間の設定 3. アプリケーションからの印刷 その 1 4. PrintFilterPipelineSvc サービスにデバッガをアタッチ 5. アプリケーションからの印刷 その 2   なお、今回動作を確認した環境は以下です。   ・OS: Windows 10 x86 Enterprise ・デバッガ:…