SlideShare a Scribd company logo
CQ エレクトロニクスセミナー
実習:Windows 11 時代のドライバー開発
Support Session
Windows APOドライバー開発の秘訣
株式会社デバイスドライバーズ
Microsoft MVP for Internet of Things
日高亜友
Windows APO ドライバー 開発の秘訣
https://seminar.cqpub.co.jp/ccm/ES23-0142
自己紹介
名前: 日高亜友(ひだか あとむ)
所属: 株式会社デバイスドライバーズ
受賞: Microsoft MVP(Internet of Things, 2006~)
仕事: 組み込みシステム、IoT、各種ドライバー開発
現在の趣味と少し仕事:
Windows 11、生成AI、Windows オーディオ、
Windows APO ドライバー 開発の秘訣
開発の秘訣 もくじ
• Visual Studio インストール
• APO の構成
• APO 開発の基本
• GUID と Property Key
• GitHub Copilot 使いこなし
Windows APO ドライバー 開発の秘訣
Visual Studio インストール
• 追加で指定する、最低限必要な項目
• 最新の SDK=10.0.22621
• 最新の Spectre C++ATL(x86 x64)
• 最新の Spectre C++MFC(x86 x64)
• 最新の C++ATL(x86 x64)
• 最新の C++MFC(x86 x64)
Windows APO ドライバー 開発の秘訣
APO の構成
• Microsoft Learn の図は古い
Windows APO ドライバー 開発の秘訣
APO開発の秘訣
• ドライバー署名強制の無効化と
DRM非対応ドライバーの有効化が必須
• 出力(Render) も入力(Scanner) も、SysVAD / DelayAPO を
サンプル(テンプレート)とする
• WPP トレーシングを有効活用
• アルゴリズムコーディングに、GitHub Copilot 活用が有効
Windows APO ドライバー 開発の秘訣
GUID と Property Key
• 本質は同じ
• GUIDに子番号を付けたものが Property Key
• GUIDの16バイトは完全ではない(いくつかのルールがある)
• GUIDのユニークは保証されない(衝突がある前提)
• GUIDは勝手に作っても良い
• 使いこなし方(最初の数字がカギ、ユニークとする)
• 好きな最初の数字が出るまでGuidGenを何回も回す
• 目的別に好きな数字(または A~F 文字)を割り当てる
• 0,1,2,3 あたりが覚え易く使い易い
• いざという時は自分で作る
Windows APO ドライバー 開発の秘訣
GitHub Copilot 使いこなしのコツ
• アルゴリズムは全てを作らせる
• 必要部だけのコードだけの作成は不可能
• 手順を追って、または手順を分けて、作らせる(次ページ)
• 適切な関数名、変数名、コメントが重要
• 納得が行くコードが出るまで何回も作らせる
• 試しに勝手にやらせてみて、何がしたいのかを確認
• 単位系、表示系の「Copilotの勘違い」に注意
• コンパイルエラーは無い
• 出力完了=完成 デバッグ不要
• 動作確認は重要
Windows APO ドライバー 開発の秘訣
豊富なコーディング経験者こそが
AI にコーディングさせるべき
AI との知恵比べ
実際に作られたコード
Windows APO ドライバー 開発の秘訣
実際は Peak フィルターしか使用しない
全てのフィルターと選択処理を
コーディングさせる
ご視聴ありがとうございました。
資料→ SlideShare/NETMF
ソースコード→ GitHub/ahidaka
Windows APO ドライバー 開発の秘訣

More Related Content

PPTX
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
PPTX
How to use Windows 11 effectively.pptx
PPTX
Easy-to-use IoT system created with Azure and EnOcean
PPTX
Guidance for beginners and experts on how to set up a Windows driver developm...
PPTX
What is Device Driver
PDF
UWPによるマルチデバイス開発最新事情
PPTX
Windows 11 がやってくる - IT管理者の準備と対策
PPTX
Windows 11 information that can be used at the development site
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
How to use Windows 11 effectively.pptx
Easy-to-use IoT system created with Azure and EnOcean
Guidance for beginners and experts on how to set up a Windows driver developm...
What is Device Driver
UWPによるマルチデバイス開発最新事情
Windows 11 がやってくる - IT管理者の準備と対策
Windows 11 information that can be used at the development site

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
Useful Tips and Tricks for Windows 11 TPM
PDF
Windows 11 22H2 Feature-Update, Copilot, and Tips
PPTX
ChatGPT solution with EnOcean Gateway
PPTX
Windows ChatGPT Bing AI
PPTX
Windows ChatGPT Bing AI.pptx
PPTX
Music Tech Community LT, Introducing Windows APO
PPTX
LLILUM and TinyCLR OS
PPTX
Introducing new features of EnOcean Gateway
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
Useful Tips and Tricks for Windows 11 TPM
Windows 11 22H2 Feature-Update, Copilot, and Tips
ChatGPT solution with EnOcean Gateway
Windows ChatGPT Bing AI
Windows ChatGPT Bing AI.pptx
Music Tech Community LT, Introducing Windows APO
LLILUM and TinyCLR OS
Introducing new features of EnOcean Gateway
Ad

Tips and Tricks for developing Windows APO drivers

  • 1. CQ エレクトロニクスセミナー 実習:Windows 11 時代のドライバー開発 Support Session Windows APOドライバー開発の秘訣 株式会社デバイスドライバーズ Microsoft MVP for Internet of Things 日高亜友 Windows APO ドライバー 開発の秘訣 https://seminar.cqpub.co.jp/ccm/ES23-0142
  • 2. 自己紹介 名前: 日高亜友(ひだか あとむ) 所属: 株式会社デバイスドライバーズ 受賞: Microsoft MVP(Internet of Things, 2006~) 仕事: 組み込みシステム、IoT、各種ドライバー開発 現在の趣味と少し仕事: Windows 11、生成AI、Windows オーディオ、 Windows APO ドライバー 開発の秘訣
  • 3. 開発の秘訣 もくじ • Visual Studio インストール • APO の構成 • APO 開発の基本 • GUID と Property Key • GitHub Copilot 使いこなし Windows APO ドライバー 開発の秘訣
  • 4. Visual Studio インストール • 追加で指定する、最低限必要な項目 • 最新の SDK=10.0.22621 • 最新の Spectre C++ATL(x86 x64) • 最新の Spectre C++MFC(x86 x64) • 最新の C++ATL(x86 x64) • 最新の C++MFC(x86 x64) Windows APO ドライバー 開発の秘訣
  • 5. APO の構成 • Microsoft Learn の図は古い Windows APO ドライバー 開発の秘訣
  • 6. APO開発の秘訣 • ドライバー署名強制の無効化と DRM非対応ドライバーの有効化が必須 • 出力(Render) も入力(Scanner) も、SysVAD / DelayAPO を サンプル(テンプレート)とする • WPP トレーシングを有効活用 • アルゴリズムコーディングに、GitHub Copilot 活用が有効 Windows APO ドライバー 開発の秘訣
  • 7. GUID と Property Key • 本質は同じ • GUIDに子番号を付けたものが Property Key • GUIDの16バイトは完全ではない(いくつかのルールがある) • GUIDのユニークは保証されない(衝突がある前提) • GUIDは勝手に作っても良い • 使いこなし方(最初の数字がカギ、ユニークとする) • 好きな最初の数字が出るまでGuidGenを何回も回す • 目的別に好きな数字(または A~F 文字)を割り当てる • 0,1,2,3 あたりが覚え易く使い易い • いざという時は自分で作る Windows APO ドライバー 開発の秘訣
  • 8. GitHub Copilot 使いこなしのコツ • アルゴリズムは全てを作らせる • 必要部だけのコードだけの作成は不可能 • 手順を追って、または手順を分けて、作らせる(次ページ) • 適切な関数名、変数名、コメントが重要 • 納得が行くコードが出るまで何回も作らせる • 試しに勝手にやらせてみて、何がしたいのかを確認 • 単位系、表示系の「Copilotの勘違い」に注意 • コンパイルエラーは無い • 出力完了=完成 デバッグ不要 • 動作確認は重要 Windows APO ドライバー 開発の秘訣 豊富なコーディング経験者こそが AI にコーディングさせるべき AI との知恵比べ
  • 9. 実際に作られたコード Windows APO ドライバー 開発の秘訣 実際は Peak フィルターしか使用しない 全てのフィルターと選択処理を コーディングさせる