SlideShare a Scribd company logo
最新の Windows 10 でのドライバー開発の基礎から
署名、Windows Update 配布までを一通り解説
IoT ALGYAN 運営委員
– Windows Development
Microsoft MVP
M V P
(当時、日本で2人 世界で20人弱)
MVP Global Summit 2006
今まで作った数:約300?
Windows, Linux, NETMF, FreeBSD, RTOS…
Windows 7 Sensor &
Location Platform
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
ツッコミ歓迎!
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
OS モジュール
Windows 10 driver development (fixed, rev.2)
• ファンクションドライバー
バスドライバー、フィルター
ドライバーの例は
GitHub Toaster サンプル参照
Windows 10 driver development (fixed, rev.2)
Universal Driver
WDM
WDF
UMDF2
KMDF
Windows Driver Model
Windows Driver Frameworks
いずれか
選択
Kernel Mode Driver Framework
User Mode Driver
Framework Version 2
UMDF2
KMDF
Kernel Mode Driver Framework
User Mode Driver
Framework Version 2
限定DDI等
の制約
ユーザーモード
カーネルモード
x64
WDM
UMDF 2.x
KMDF
UMDF 1.x
x86
ARM32
ARM64
ユニバーサル
ドライバー
Vistaの衝撃
Windows 98 のUSBが元
• ドライバー開発専用のモデル(アーキテクチャ)
NTはMicro Kernel
Open Source
実体はOSモジュールを切り出してドキュメント公開しただけ
同じアプリに
同一API を提供
アプリケーションは
ドライバーモデルを意識しない
例外有り:特定ドライバーは特定モデルでだけ記述可能
• ソースコードの互換性有り
通信が容易!
KMDFと同等
デバッグ時に有用
• ドライバーバイナリー
• INF
• セキュリティカタログ
• INFとセキュリティカタログは必須
• PnP
• Devcon.exe
• txtsetup.oem
• バイナリー AsIs 配布不可
→自分でビルドしたものは自由配布可
• インストール済パッケージ・フォルダー
• インストール・ログ
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
• Microsoft OS Descriptor
• .NET Frameworkの進化
DOS APIとの決別
例: COM番号の心配不要
Windows.Devices.Adc Windows.Devices.I2c Windows.Devices.Scanners
Windows.Devices.AllJoyn Windows.Devices.Input Windows.Devices.Sensors
Windows.Devices.Background Windows.Devices.Lights Windows.Devices.SerialCommunication
Windows.Devices.Bluetooth Windows.Devices.Midi Windows.Devices.SmartCards
Windows.Devices.Custom Windows.Devices.Perception Windows.Devices.Sms
Windows.Devices.Display Windows.Devices.PointOfService Windows.Devices.Spi
Windows.Devices.Enumeration Windows.Devices.Portable Windows.Devices.Usb
Windows.Devices.Geolocation Windows.Devices.Power Windows.Devices.WiFi
Windows.Devices.Gpio Windows.Devices.Printers Windows.Devices.WiFiDirect
Windows.Devices.Haptics Windows.Devices.Pwm
Windows.Devices.HumanInterfaceDevice Windows.Devices.Radios
.NET Framework 4.8
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
• Windows 7
• Windows 8.1
• Windows Vista
SHA1→SHA256
Windows 10 Desktop カーネルは全ての
WDM,WDFドライバーが動作するが
IoT Coreなどではユニバーサルドライバーのみ
Windows 10 driver development (fixed, rev.2)
カーネルモードドライバーの環境事例
Target マシン-1 Target マシン-2
Host マシン-1
インターネット
セキュリティ
ファイアウォール
社内またはグループ内の
他のネットワーク環境
• ウィルスチェックやセキュリティ は特に
余計なソフトウェアやデバイスは一切入れない
SDK, WDKは常に最新版だけを使用
Visual Studioは最新版に更新
Windows Driver Kit (WinDBG などを含む)
サポート切れOS用ドライバー
の開発は最後の環境で
EV 証明書(会社登記、4~12万円)
1年間だけ有効
ドライバー署名用は
2021年7月終了
構成証明書署名 (Attestation signing)
EV 証明書(会社登記、4~12万円)一年間
英語版
PC 数台を使用して
数日から一週間かかるテスト
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
The Microsoft Public License (MS-PL)
2015に変更
• 特許請求の無効化
• 利用時は全ての著作権、特許、商標、および帰属
表示を保持
• ソースコード形式で頒布時、LICENSE表示を維持
Windows 10 driver development (fixed, rev.2)
ドライバーのコード分析
SAL
Windows 10 driver development (fixed, rev.2)
CATファイル設定時刻
これが正しくないとビルドエラー VS2019 16.9頃で
解消済。不要!
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
• ドライバーパッケージ
(x86以外の)
構成証明書署名
https://docs.microsoft.com/windows-hardware/drivers/dashboard/register-for-the-hardware-program
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
https://github.com/Microsoft/Windows-driver-samples
• Wizard/Template でスケルトンドライバーがすぐ開発可能
• KMDF ドライバーをテンプレートで作成し、設定とビルド
• ファイル内容とプロパティを確認して下さい
• UMDF ドライバーをテンプレートで作成し、設定とビルド
• ファイル内容とプロパティを確認して下さい
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development (fixed, rev.2)
ありがとうございました。

More Related Content

PPTX
初心者向けデバイスドライバ講座(1)
PDF
テスト文字列に「うんこ」と入れるな
PDF
Android起動周りのノウハウ
PPTX
ローカライズって何?(UE4 Localization Deep Dive)
PDF
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
PDF
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
PDF
[Container Runtime Meetup] runc & User Namespaces
PDF
Spring bootでweb バリデート編
初心者向けデバイスドライバ講座(1)
テスト文字列に「うんこ」と入れるな
Android起動周りのノウハウ
ローカライズって何?(UE4 Localization Deep Dive)
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
[Container Runtime Meetup] runc & User Namespaces
Spring bootでweb バリデート編

What's hot (20)

PDF
OSC2012Kansai@Kyoto 自宅SAN友の会 - インフラエンジニアなら知っておきたい ストレージのはなし
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
PPTX
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
PPTX
Metasploitでペネトレーションテスト
PPTX
[DL輪読会]Learning quadrupedal locomotion over challenging terrain
PDF
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
PDF
Unity dojo amplifyshadereditor101_jpn-jp
PDF
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
PDF
60fpsアクションを実現する秘訣を伝授 解析編
PDF
LXDのすすめ
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PPTX
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
PDF
PHPの今とこれから2023
PDF
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
PDF
日本語テストメソッドについて
PPTX
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
OSC2012Kansai@Kyoto 自宅SAN友の会 - インフラエンジニアなら知っておきたい ストレージのはなし
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
Metasploitでペネトレーションテスト
[DL輪読会]Learning quadrupedal locomotion over challenging terrain
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
Unity dojo amplifyshadereditor101_jpn-jp
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
60fpsアクションを実現する秘訣を伝授 解析編
LXDのすすめ
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
Docker道場オンライン#1 Docker基礎概念と用語の理解
コンテナの作り方「Dockerは裏方で何をしているのか?」
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
PHPの今とこれから2023
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
日本語テストメソッドについて
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Ad

Similar to Windows 10 driver development (fixed, rev.2) (20)

PDF
Windows Hardware
PDF
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
PDF
今さら聞けない!Microsoft Azure仮想マシン入門
PDF
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
PPTX
Windows 11 insider tips for developer
PPTX
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
PPTX
Oem pcのつくりかた
PDF
Interact 2019 - CI01 Windows Server 2019
PDF
Windows 7 オプショナルツール 一挙紹介
PDF
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
PPTX
Hardware control by .NET Core 3.1
PPTX
ET2016 Smart Japan Alliance Llilum 161118
PDF
どうなる?Windows 8時代の業務アプリ開発
PPTX
Windows8活用研究2 2013-01-26-公開用
PPTX
2014 1018 OSC-Fall Tokyo NETMF
PPTX
Guidance for beginners and experts on how to set up a Windows driver developm...
PPTX
Microsoft DaRT って何だろう
PDF
Windowsフォームで大丈夫か?一番良いのを頼む。
PDF
Windows8 最新技術動向
ODP
Monomeeting 20081022
Windows Hardware
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
今さら聞けない!Microsoft Azure仮想マシン入門
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
Windows 11 insider tips for developer
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Oem pcのつくりかた
Interact 2019 - CI01 Windows Server 2019
Windows 7 オプショナルツール 一挙紹介
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
Hardware control by .NET Core 3.1
ET2016 Smart Japan Alliance Llilum 161118
どうなる?Windows 8時代の業務アプリ開発
Windows8活用研究2 2013-01-26-公開用
2014 1018 OSC-Fall Tokyo NETMF
Guidance for beginners and experts on how to set up a Windows driver developm...
Microsoft DaRT って何だろう
Windowsフォームで大丈夫か?一番良いのを頼む。
Windows8 最新技術動向
Monomeeting 20081022
Ad

More from Atomu Hidaka (20)

PPTX
What the end of support of Windows 10 will mean?
PPTX
Explains how to use USBView, which is useful for analyzing Windows USB problems
PPTX
Explaining how to use MBR2GPT in preparation for the end of Windows 10 support
PPTX
The requirements for installing Windows 11 on older PCs have been relaxed.
PPTX
EnOcean-iot, Generative-AI, and RAG for LLM
PPTX
Introduction to the Thunder Cloud Project Technical Committee
PPTX
WSL for IoT, Microcomputer, and Yocto Project
PPTX
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
PPTX
Customize Chat-GPT using Azure OpenAI Studio
PPTX
Useful Tips and Tricks for Windows 11 TPM Part 2
PPTX
How to use EnOcean Gateway with Azure OpenAI
PPTX
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PPTX
Tips and Tricks for developing Windows APO drivers
PPTX
Useful Tips and Tricks for Windows 11 TPM
PPTX
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
PDF
Windows 11 22H2 Feature-Update, Copilot, and Tips
PPTX
Windows 11 information that can be used at the development site
PPTX
ChatGPT solution with EnOcean Gateway
PPTX
Windows ChatGPT Bing AI
PPTX
Windows ChatGPT Bing AI.pptx
What the end of support of Windows 10 will mean?
Explains how to use USBView, which is useful for analyzing Windows USB problems
Explaining how to use MBR2GPT in preparation for the end of Windows 10 support
The requirements for installing Windows 11 on older PCs have been relaxed.
EnOcean-iot, Generative-AI, and RAG for LLM
Introduction to the Thunder Cloud Project Technical Committee
WSL for IoT, Microcomputer, and Yocto Project
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
Customize Chat-GPT using Azure OpenAI Studio
Useful Tips and Tricks for Windows 11 TPM Part 2
How to use EnOcean Gateway with Azure OpenAI
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Tips and Tricks for developing Windows APO drivers
Useful Tips and Tricks for Windows 11 TPM
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
Windows 11 22H2 Feature-Update, Copilot, and Tips
Windows 11 information that can be used at the development site
ChatGPT solution with EnOcean Gateway
Windows ChatGPT Bing AI
Windows ChatGPT Bing AI.pptx

Windows 10 driver development (fixed, rev.2)