Introducing windows 10 universal driver
-
Upload
atomu-hidaka -
Category
Technology
-
view
48 -
download
6
Transcript of Introducing windows 10 universal driver
株式会社デバイスドライバーズ代表取締役日高亜友
ユニバーサルドライバー
ユニバーサルドライバーとは?Windows 10 の リリースに合わせて「 Phone 」と「 DeskTop PC 」のドライバーをまとめてWindows 10 One Core OS で利用できるようにしたもの
併せて Windows 10 IoT Coreなど、 Windows Edition 全てで使えるドライバー
Driverfor PCs
One Core OS
Driverfor
Phones
Universal Driver
Windows Phone 8.1
Windows8.1
わかり易く説明するための個人的な見解です
プラットフォームとバイナリCPU バイナリー アーキテクチャとの関係
Target Platform
Universal
Desktop
Mobile
IoTXbox
HoloLens
ARM64ARMx64x86
ユニバーサルなのは…
ドライバーバイナリーはCPU アーキテクチャ別に共通
ソースコード (API, DDI) とツールは単一
Windows ABI, API, DDI, OS
ABI: Application Binary Interface = API + DDI
WindowsDesk Top
Universal Driver
Universal app
Windows DDI
Windows API
Windowsfor Mobile
WindowsIoT Core
Windowsfor …
何が変わるか?ユニバーサルドライバでの変更点の例
カーネルモード ドライバー (KMDF, WDM, Miniport, …) 影響は微小=ほとんど変わらない
ユーザーモード ドライバー (UMDF, AX, DLL, …)影響大= UMDF 1.x は廃止、 Win32 は禁止、センサー・ロケーション関連の
変更
INF ファイル影響小=禁止:コインストーラー、クラス インストーラー、 HKR 以外の
AddRegそれでもユニバーサル対応にしなければ全て今まで通り使える
何が変わるか?DDI WDM の例
MmCreateMdl() → 廃止IoAllocateMdl() →Universal 対応ExAllocatePoolWithTag →Universal 対応ExAllocatePool() →Universal 対応
(Obsolete のまま )
カーネルモード DDI はほとんど変わらない
対応 DDI には、 MSDN のリファレンス ページで “ Universal” とマーク
ExAllocatePool() の表示例
開発者への影響ドライバー開発者の皆様へ
Desktop, Server, WES のドライバー開発者= 8.1 からほとんど変わりません( 7 からはかなり変わっています)
WEC, Handheld, Xbox, Phone, のドライバー開発者=変わります
IoT, HoloLens, その他の開発者=覚えて下さい
WDK 10
Windows 10 とデバイスWindowsfor PCs
One Core OS
Windowsfor Phones
Windowsfor … IoT
Windows Driver
PCPhon
ePOS? IoT…Tablet Navi? Handhel
d?
WDK 10
WDK 8.1 update 版から あまり変わらないWindows 7 以降にインストール可能W10 対応、ユニバーサル ドライバ対応が入った複数バージョンの WDK がインストール可能Windows 7 以降アーキテクチャ用ドライバー開発が可能
今のところインストール手順が少し面倒
WDK10
WDK 10 の変更点良くなったところGitHub WDF ソースコード開示
GitHub Sample 開示と常時更新
ビルトインドライバの充実 VHF (Virtual HID Framework) USB Dual Role (Host & Device)
WDF の SD, SPB(SPI と I2C), GPIO サポートWDK10
WDK 10 のインストール環境は Windows 7 以降重要:古い Visual Studio Preview, SDK 10.x, WDK 10.x をアンインストール
Windows 10 の場合重要:開発者設定を有効( gpedit.msc 等利用)
Visual Studio 2015 RC [ カスタム ] インストール選択 [Universal Windows app development tools] 展開 [Tools and Windows SDK 10.0.10069] 選択SDK 10.0.10075 をダウンロード&インストール
WDK 10.0.10075 をダウンロード&インストールWindows HLK RC for Windows 10 をダウンロード&インストールWindows ADK RC for Windows 10 をダウンロード&インストール
WDK10
デベロッパー センター - ハードウェア > Windows 10 > ダウンロード に記載
ユニバーサル ドライバー開発デモ
Raspberry pi 2 用 デバイスドライバーの開発テンプレートの選択構成マネージャー選択とプラットフォーム追加( ARM アーキテクチャ)Target Platform=Universal の確認Driver Settings>Target OS Version で Windows 10 を確認ビルド結果= Driver is a Universal Driver. メッセージの確認リモート PowerShell で devcon.exe を起動してインストール共有フォルダーから参照して C:\Windows\inf\setupapi.dev*.log のインストールログを確認
まとめ
ユニバーサル ドライバーとは?Windows 10 に合わせて Desktop + Phone のドライバーを統一したものWindow 10 IoT Core などにも対応
変更点ドライバー開発での変更点やデメリットは少ない
WDK 10WDK 8.1 update からの変更は少ない便利になる点は多い