内部デバイス用の UWP デバイス アプリ
このトピックでは、UWP デバイス アプリが内部デバイスにアクセスできる方法について説明します。 内部デバイスは、PC エンクロージャ内に駐在するデバイス、または PC エンクロージャと統合されているデバイスです。
このトピックで説明する API には、外部デバイスへのアクセスに使用できるものもあります。 このトピックでは、内部デバイスへのアクセスに特に重点を置いています。 各 API について詳しくは、「Windows API リファレンス」を参照してください。
内部デバイスへのアクセス
UWP アプリで内部デバイスにアクセスするには、次の 3 つの方法があります。
推奨の可否 | API | 開発者 | デバイス メタデータの必要性 |
---|---|---|---|
はい | デバイス シナリオ API (画像キャプチャ、スキャンなど) | すべての開発者 | いいえ |
はい | デバイス プロトコル API (USB、HID など) | OEM | はい (内部デバイスに対してのみ) |
いいえ | カスタム ドライバー アクセス | OEM | はい |
デバイス シナリオ API
Windows ランタイムには、画像キャプチャ、スキャン、印刷、モーション センサーの使用のための API など、PC に組み込まれているか接続されている一般的なデバイスにアクセスするための API がいくつか用意されています。 これらの API は特定のシナリオを念頭に置いて設計されているため、デバイス シナリオ API と呼ばれます。 デバイス シナリオ API は、すべての開発者が使用できるものであり、使用に際してデバイス メタデータは必要ありません。 シナリオ API の詳細については、「デバイスの統合」を参照してください。
デバイス シナリオ API が提供するもの以外へのアクセスは、OEM (または OEM と協業しているコンポーネント サプライヤー) に限定され、システム コンテナーのデバイス メタデータが必要です。
デバイス プロトコル API
OEM/コンポーネント サプライヤーは、シナリオ API では満たせない方法で内部デバイスにアクセスする必要がある場合、デバイス プロトコル API を使用できます。 デバイス プロトコル API は、UWP アプリが USB およびヒューマン インターフェイス デバイス (HID) へのアクセスに使用できる Windows ランタイム API です。 アクセスの種類は API によって異なります。
デバイス プロトコル API | 名前空間 | アクセスの種類 |
---|---|---|
USB | Windows.Devices.Usb | 排他的な読み取りと排他的な書き込み |
HID | Windows.Devices.HumanInterfaceDevice | 共有読み取りと排他的な書き込み |
デバイス プロトコル API の最も一般的な用途である Microsoft クラス ドライバーのみを使用する周辺機器にアクセスするのに、デバイス メタデータは必要ありません。 ただし、これらの API を使用して内部デバイスにアクセスするにはメタデータが必要です。 内部デバイスにアクセスする場合は、デバイス メタデータでシステム コンテナーの特権アプリとしてアプリを指定する必要があります。 内部デバイス アクセスが OEM に制限されるのは、この要件のためです。
For more info, see:
デバイス ドライバーの要件 (ステップ バイ ステップ ガイドの手順 1 から)
デバイス メタデータの作成 (ステップ バイ ステップ ガイドの手順 2)
カスタム ドライバー アクセス
OEM または IHV がデバイス プロトコル API を使用して内部デバイスまたは周辺機器にアクセスできない場合は、まず Microsoft に問い合わせて、Windows エコシステム チームとシナリオについて話し合う必要があります。 場合によっては、Microsoft の承認を受けて、UWP デバイス アプリでカスタム ドライバーに直接アクセスできます。
カスタム ドライバー アクセスには、デバイス メタデータが必要です。 カスタム ドライバーにアクセスするには、周辺機器またはシステム コンテナーの特権アプリとして、デバイス メタデータでアプリを指定する必要があります。 カスタム ドライバーのアクセスの詳細については、「PC 内部の特殊なデバイス向け UWP デバイス アプリ設計ガイド」を参照してください。
コンポーネント サプライヤー
コンポーネント サプライヤーは OEM と協力して、内部デバイス用の UWP デバイス アプリを開発できます。 これは、次のような何通りかの方法で実行できます。
コンポーネント サプライヤーがアプリを開発して配布する: この場合は、内部デバイスにアクセスするアプリとドライバーをコンポーネント サプライヤーが所有、開発、配布します。 OEM はデバイス メタデータを所有します。
OEM がアプリを開発して配布する: この場合は、異なるコンポーネント サプライヤーからの 1 つ以上の内部デバイスにアクセスするアプリを OEM が開発して配布します。 OEM は最終的に、アプリ開発、アプリの配布、デバイス メタデータのメンテナンスを所有します。 コンポーネント サプライヤーはドライバーを所有します。
これらのワークフローの詳細については、「PC 内部の特殊なデバイス向け UWP デバイス アプリ設計ガイド」を参照してください。