次の方法で共有


カスタム デバイスの設計に関する考慮事項

このトピックでは、デバイスにカスタム ドライバーが必要かどうかを判断するのに役立つ設計上の考慮事項について説明します。

実装するドライバーの種類の決定

次の表では、デバイスのカスタム ドライバーを開発し、デバイス アクセス API を使用して通信する必要がある場合と、代わりに Windows で提供されるデバイス スタックを使用する必要がある場合について説明します。

サポートするには 実装
以下を含む既知のデバイス:
  • センサー
  • 場所
  • Web カメラ
  • 間近
  • ショート メッセージ サービス (SMS)
  • モバイル ブロードバンド

多くの種類の既知のデバイスでは、カスタム ドライバーは必要ありません。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、ポータブル デバイス コンポーネント オブジェクト モデル (COM) API、または WPD オートメーションを使用してデバイスにアクセスできます。 アプリで Device Access API を使用する必要はありません。
Windows で提供されるクラス拡張機能またはクラス ドライバーがないデバイス。
この場合は、デバイス アクセス API を使用してカスタム ドライバー アクセスを実装する必要があるかどうかを判断するには、内部デバイス用の UWP デバイス アプリ 特殊なデバイスを参照してください。

セキュリティに関する考慮事項

次の記事では、セキュリティで保護された C++ コードを記述するためのガイダンスを提供します。

  • C++ のセキュリティに関するベスト プラクティス
  • [Patterns & Practices Security Guidance for Applications]/previous-versions/msp-n-p/ff650760(v=pandp.10))

カスタム ドライバー アクセス サンプル、内部デバイス 用の UWP デバイス アプリの、ハードウェア デベロッパー センター