ユニバーサル Windows ドライバーの概要Getting Started with Universal Windows drivers

ユニバーサル Windows ドライバーを使うと、組み込みシステムからタブレットやデスクトップ PC まで、複数の種類のデバイスで動作する 1 つのドライバー パッケージを作成できます。Universal Windows drivers enable developers to create a single driver package that runs across multiple device types, from embedded systems to tablets to desktop PCs.

ユニバーサル Windows ドライバー パッケージには、Windows 10 のユニバーサル Windows プラットフォーム (UWP) ベース エディションにインストールされて動作する INF ファイルとバイナリが含まれています。A Universal Windows driver package contains an INF file and binaries that install and run on Universal Windows Platform (UWP)-based editions of Windows 10. これらは、共通のインターフェイス セットを共有する Windows 10 の他のエディションにもインストールされ、実行されます。They also install and run on other editions of Windows 10 that share a common set of interfaces.

ドライバー バイナリは、KMDFUMDF 2、または Windows Driver Model (WDM) を使うことができます。The driver binary can use KMDF, UMDF 2, or the Windows Driver Model (WDM).

ユニバーサル ドライバーは次の部分から構成されます。A universal driver consists of the following parts:

  • ベース ドライバーA base driver
  • オプションのコンポーネント パッケージOptional component packages
  • オプションのハードウェア サポート アプリAn optional hardware support app

ベース ドライバーには、すべてのコア機能と共有コードが含まれます。The base driver contains all the core functionality and shared code. オプションのコンポーネント パッケージには、カスタマイズおよびその他の設定を含めることができます。The optional component packages can contain customizations and additional settings.

通常、デバイスの製造元 (独立系ハードウェア ベンダー (IHV)) が、ベース ドライバーを作成します。Typically, a device manufacturer, or independent hardware vendor (IHV), writes the base driver. 次に、システム ビルダー (相手先ブランド供給 (OEM)) が、オプションのコンポーネント パッケージを提供します。Then, a system builder, or original equipment manufacturer (OEM), provides any optional component packages.

IHV は、ドライバー パッケージの分離の設計ベスト プラクティスに従い、サービス操作に関するドライバーの信頼性と堅牢性を確保します。An IHV follows the design best practices of driver package isolation to ensure the driver is reliable and robust to servicing operations.

IHV がベース ドライバーを認定したら、すべての OEM システムで展開できます。After the IHV has certified the base driver, it can be deployed on all OEM systems. ベース ドライバーは、ハードウェア部分を共有するすべてのシステム全体で使用できるため、Microsoft では、特定のコンピューターに配布を限定するのではなく、Windows Insider のドライバー フライティングを使用してベース ドライバーを広範にテストできます。Because a base driver can be used across all systems that share a hardware part, Microsoft can test the base driver broadly by using Windows Insider driver flighting instead of limiting distribution to specific machines.

IHV がベース ドライバー パッケージを認定したら、すべての OEM システムで展開できます。After IHV has certified the base driver package, it can be deployed on all OEM systems. ベース ドライバー パッケージは、ハードウェア部分を共有するすべてのシステム全体で使用できるため、Microsoft では、特定のマシンに配布を限定するのではなく、Windows Insider のフライティングを介してベース ドライバー パッケージを広範にテストできます。Because a base driver package can be used across all systems that share a hardware part, Microsoft can test the base driver package broadly via Windows Insider flighting, rather than limiting distribution to specific machines.

OEM は、OEM システムに対して提供するオプションのカスタマイズのみを検証します。The OEM validates only the optional customizations that it provides for the OEM system.

ユニバーサル ドライバーは、Windows Update を通じて配布され、ハードウェア サポート アプリは Microsoft Store で配布されます。Universal drivers are distributed through Windows Update, and hardware support apps are distributed through Microsoft Store.

設計原則Design principles

ユニバーサル ドライバー パッケージを作成するときは、4 つの設計原則を考慮する必要があります。When you write a universal driver package, there are four design principles to consider:

  • 宣言型 (D) : 宣言型の INF ディレクティブのみを使用してドライバーをインストールします。Declarative (D): Install the driver by using only declarative INF directives. 共同インストーラーや RegisterDll 関数を含めないでください。Don't include co-installers or RegisterDll functions.

  • コンポーネント化済み (C) : ドライバーのエディション固有、OEM 固有、およびオプションのカスタマイズは、ベース ドライバー パッケージとは別のものです。Componentized (C): Edition-specific, OEM-specific, and optional customizations to the driver are separate from the base driver package. このため、コア デバイス機能のみを提供するベース ドライバーは、カスタマイズからは独立してターゲット設定でき、フライティング、メンテナンスを行うことができます。As a result, the base driver, which provides only core device functionality, can be targeted, flighted, and serviced independently from the customizations.

  • ハードウェア サポート アプリ (H) : ユニバーサル ドライバーに関連付けられているユーザー インターフェイス (UI) コンポーネントはハードウェア サポート アプリ (HSA) としてパッケージ化するか、OEM デバイスにプレインストールする必要があります。Hardware Support App (H): Any user interface (UI) component associated with a universal driver must be packaged as a Hardware Support App (HSA) or preinstalled on the OEM device. HSA は、特定のドライバーと関連付けられたオプションのデバイス固有のアプリです。An HSA is an optional device-specific app that's paired with a driver. このアプリケーションは、場合によって、ユニバーサル Windows プラットフォーム (UWP) またはデスクトップ ブリッジ アプリとなります。The application can be a Universal Windows Platform (UWP) or Desktop Bridge app. HSA の配布と更新は、Microsoft Store を通じて行う必要があります。You must distribute and update an HSA through the Microsoft Store. 詳しくは、「Hardware Support App (HSA): Steps for Driver Developers (ハードウェア サポート アプリ (HSA): ドライバー開発者向け手順)」および「Hardware Support App (HSA): Steps for app developers (ハードウェア サポート アプリ (HSA): アプリ開発者向け手順)」を参照してください。For details, see Hardware Support App (HSA): Steps for driver developers and Hardware Support App (HSA): Steps for app developers.

  • ユニバーサル API コンプライアンス (U) : ユニバーサル ドライバー パッケージ内のバイナリは、Windows 10 の UWP ベースのエディションに含まれる API と DDI のみを呼び出します。Universal API compliance (U): Binaries in the universal driver package call only those APIs and DDIs that are included in UWP-based editions of Windows 10. このような DDI には、ドキュメントのリファレンス ページで "ユニバーサル" というマークが付いています。These DDIs are marked as Universal on the corresponding documentation reference pages. INF ファイルは、ユニバーサル INF 構文のみを使います。INF files use only universal INF syntax.

また、ユニバーサル ドライバーでは、ドライバー パッケージの分離の原則からも恩恵を得ることができます。Additionally, Universal drivers also benefit from the principles of driver package isolation. これらのベスト プラクティスに従うための詳細なガイダンスについては、「ドライバー パッケージの分離」ページをご覧ください。You'll find detailed guidance on how to follow these best practices in the Driver Package Isolation page.

このドキュメントでは、これらの原則を参照する際に DCHU の頭字語を使用します。In the documentation, we use the DCHU acronym to refer to these principles. この記事の後半には、ドライバー パッケージを DCHU 互換にする方法についてのガイダンスが示されています。Later in this article, you'll find guidance to make your driver package DCHU-compliant. DCHU ユニバーサル ドライバー サンプルでの DCHU 設計原則の適用方法について説明されている「ユニバーサル ドライバーのシナリオ」もご覧ください。Also check out Universal driver scenarios, which describes how the DCHU universal driver sample applies the DCHU design principles.

要件Requirements

ユニバーサル ドライバー パッケージを作成するときは、次の手順に従います。When you write a universal driver package, follow these steps:

ベスト プラクティスBest practices