14
株株株株株株株株株株株株株株 株株株株株 株株株株 株株株株株株株株株株株

Introducing Windows 10 Universal Driver

Embed Size (px)

Citation preview

Page 1: Introducing Windows 10 Universal Driver

株式会社デバイスドライバーズ代表取締役日高亜友

ユニバーサルドライバー

Page 2: 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

わかり易く説明するための個人的な見解です

Page 3: Introducing Windows 10 Universal Driver

プラットフォームとバイナリCPU バイナリー アーキテクチャとの関係

Target Platform

Universal

Desktop

Mobile

IoTXbox

HoloLens

ARM64ARMx64x86

Page 4: Introducing Windows 10 Universal Driver

ユニバーサルなのは…

ドライバーバイナリーはCPU アーキテクチャ別に共通

ソースコード (API, DDI) とツールは単一

Page 5: Introducing Windows 10 Universal Driver

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 …

Page 6: Introducing Windows 10 Universal Driver

何が変わるか?ユニバーサルドライバでの変更点の例

カーネルモード ドライバー (KMDF, WDM, Miniport, …) 影響は微小=ほとんど変わらない

ユーザーモード ドライバー (UMDF, AX, DLL, …)影響大= UMDF 1.x は廃止、 Win32 は禁止、センサー・ロケーション関連の

変更

INF ファイル影響小=禁止:コインストーラー、クラス インストーラー、 HKR 以外の

AddRegそれでもユニバーサル対応にしなければ全て今まで通り使える

Page 7: Introducing Windows 10 Universal Driver

何が変わるか?DDI WDM の例

MmCreateMdl() → 廃止IoAllocateMdl() →Universal 対応ExAllocatePoolWithTag →Universal 対応ExAllocatePool() →Universal 対応

(Obsolete のまま )

カーネルモード DDI はほとんど変わらない

対応 DDI には、 MSDN のリファレンス ページで “ Universal” とマーク

ExAllocatePool() の表示例

Page 8: Introducing Windows 10 Universal Driver

開発者への影響ドライバー開発者への皆様へ

Desktop, Server, WES のドライバー開発者= 8.1 からほとんど変わりません( 7 からはかなり変わっています)

WEC, Handheld, Xbox, Phone, のドライバー開発者=変わります

IoT, HoloLens, その他の開発者=覚えて下さい

Page 9: Introducing Windows 10 Universal Driver

WDK 10

Windows 10 とデバイスWindowsfor PCs

One Core OS

Windowsfor Phones

Windowsfor … IoT

Windows Driver

PCPhon

ePOS? IoT…Tablet Navi? Handhel

d?

Page 10: Introducing Windows 10 Universal Driver

WDK 10

WDK 8.1 update 版から あまり変わらないWindows 7 以降にインストール可能W10 対応、ユニバーサル ドライバ対応が入った複数バージョンの WDK がインストール可能Windows 7 以降アーキテクチャ用ドライバー開発が可能

今のところインストール手順が少し面倒

WDK10

Page 11: Introducing Windows 10 Universal Driver

WDK 10 の変更点良くなったところGitHub WDF ソースコード開示

GitHub Sample 開示と常時更新

ビルトインドライバの充実   VHF (Virtual HID Framework)   USB Dual Role (Host & Device)

WDF の SD, SPB(SPI と I2C), GPIO サポートWDK10

Page 12: Introducing Windows 10 Universal Driver

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 > ダウンロード に記載

Page 13: Introducing Windows 10 Universal Driver

ユニバーサル ドライバー開発デモ

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 のインストールログを確認

Page 14: Introducing Windows 10 Universal Driver

まとめ

ユニバーサル ドライバーとは?Windows 10 に合わせて Desktop + Phone のドライバーを統一したものWindow 10 IoT Core などにも対応

変更点ドライバー開発での変更点やデメリットは少ない

WDK 10WDK 8.1 update からの変更は少ない便利になる点は多い