カスタム デバイスの設計上の考慮事項
このトピックでは、デバイスにカスタム ドライバーが必要かどうかを判断するのに役立つ設計上の考慮事項について説明します。
実装するドライバーの種類の決定
この表では、デバイス用のカスタム ドライバーを開発し、デバイス アクセス API を使用して通信する必要がある場合と、代わりに Windows 提供のデバイス スタックを使用する必要がある場合について説明します。
サポートする要素 | 実装 |
---|---|
以下を含む既知のデバイス:
|
Windows には、ドライバーと Windows 間の通信を管理する API とクラス拡張デバイス ドライバー インターフェイス (DDI) が含まれているため、多くの種類の既知のデバイスではカスタム ドライバーは必要ありません。 センサー、位置情報、および Windows ポータブル デバイス (WPD) デバイスは、このサポートを持つデバイス クラスの例です。 これらの Windows が提供する DDI のいずれかを使用してデータとコマンドを送受信するドライバを構築する場合、Windows ストア アプリで Device Access API を使用してアクセスを仲介したり、入出力 (I/O) 制御コードを直接ドライバに送信したりする必要はありません。 Windows ストア アプリがデバイス クラスの Windows ランタイム API を使用して既知のデバイスへのアクセスを要求すると、Windows 8 はデバイスの種類に基づいてデバイス アクセスを処理します。 アプリは常に、個人を特定できる情報を明らかにしないいくつかのよく知られたタイプのデバイス (加速度計など) にアクセスします。 他の種類の既知のデバイスは、アプリがアクセスできるようにする前に、アプリケーション マニフェストで宣言する必要があります。 ユーザーは、位置情報、Web カメラ、マイク デバイスなどの機密情報を明らかにするデバイス、またはモバイル ブロードバンド デバイスなど、ユーザーに費用がかかる可能性があるデバイスにアプリがアクセスする許可を与える必要があります。 |
MTP サービスを実装する WPD デバイス。 |
MTP クラス ドライバーを使用することも、WPD DDI を使用してドライバーを構築することもできます。 Windows 8 では、MTP デバイス サービスがサポートされています。また、アプリでは、Windows.Devices.Portable Windows ランタイム API、Portable Device Component Object Model (COM) API、または WPD Automation を使用してデバイスにアクセスできます。 アプリで Device Access API を使用する必要はありません。 |
Windows で提供されるクラス拡張機能またはクラス ドライバーがないデバイス。 |
この場合は、特殊化されたデバイス用の「内部デバイス用の UWP デバイス アプリ」を参照して、Device Access API を使用してカスタム ドライバー アクセスを実装する必要があるかどうかを判断します。 |
セキュリティに関する考慮事項
次の記事では、セキュリティで保護された C++ コードを記述するためのガイダンスを提供します。
- C++ のセキュリティ推奨事項
- [Patterns & Practices Security Guidance for Applications]/previous-versions/msp-n-p/ff650760(v=pandp.10))
関連トピック
カスタム ドライバー アクセス のサンプル、内部デバイス用の UWP デバイス アプリ、ハードウェア デベロッパー センター