知識マップ: WindowsアプリでUSB機器を扱う方法 ── 仮想COM・HID・WinUSB・専用SDKの選び方

記事「WindowsアプリでUSB機器を扱う方法 ── 仮想COM・HID・WinUSB・専用SDKの選び方」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、WindowsアプリからUSB機器を扱う4つの接続方式(仮想COMポート・HID・WinUSB・ベンダー提供SDK)を、機器がデバイスマネージャーでどのUSBデバイスクラスとして見えるかを起点に選ぶ考え方を扱う。標準クラスドライバーで足りなければWinUSB、複数アプリの同時アクセスが必要ならUMDFドライバー、それでも無理ならKMDFドライバーという順で検討するのが公式の選定順序であり、複合デバイスやHIDの排他コレクションなど機器側の制約が識別・実装方法を左右する。どの方式でも機器の一意識別とPnP通知による抜き差し追従を自分で設計する必要があり、機器切断によるハンドル無効化への対処が欠かせない。ドライバーを配布する場合は、自作の.sysがなくてもカタログ署名が必要で、カーネルモードドライバーを含むならさらにMicrosoftによる署名とEVコード署名証明書が要る。

WindowsでのUSB機器接続方式の知識マップUSB接続方式の選定がデバイスマネージャー上のUSBデバイスクラスの確認を起点とし、仮想COMポート・HID・WinUSB・ベンダーSDKの4方式それぞれが機器の一意識別・PnP通知・署名要件とどう結び付くかを示す図。前提とするより先に行うべきより先に行うべき利用する利用する利用する利用する前提とする両立しない推奨される対応前提とする前提とする前提とする前提とする両立しない利用する利用する利用する軽減する利用するで構成できる前提とする前提とする前提とする利用する前提とする前提とするUSB接続方式の選定USBデバイスクラスWinUSB方式UMDFドライバーKMDFドライバー複合デバイス仮想COMポート方式HID方式Microsoft OS記述子(WinUSBの互換ID)複数アプリからの同時アクセス機器の一意識別排他HIDコレクションOverlapped I/OGetOverlappedResultCancelIoExUSB機器のPnP通知機器切断によるハンドルの無効化Windows FormsUSBセレクティブサスペンドドライバーパッケージのカタログ署名カーネルモードドライバー署名(Windows 10 1607以降)EVコード署名証明書ベンダー提供SDK・専用ドライバー方式bitness一致要件

概念間の関係(全27件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

USB接続方式の選定
機器がデバイスマネージャーで何として見えるかを起点に、標準クラスドライバー・WinUSB・UMDF・KMDFの順で検討する、USB機器とWindowsアプリを接続する方式の選び方。
USBデバイスクラス
USB-IFが定めるクラスコードによる機器の分類で、該当するクラスに応じてWindowsが標準クラスドライバーを自動的にロードするかどうかが決まる。
WinUSB方式
Microsoft提供の汎用USBドライバーWinusb.sysを機能ドライバーとして載せ、ユーザーモードから直接エンドポイントに読み書きできるようにするUSB機器接続方式。
UMDFドライバー
複数のアプリからの同時アクセスに対応できる、ユーザーモードで動作するWindowsドライバーフレームワーク。
複合デバイス
1本のUSBケーブルの先に複数の機能を持ち、Usbccgp.sysによって機能ごとに別々のデバイスとして展開されるUSB機器。
仮想COMポート方式
USBのCDC(ACM)クラスを名乗る機器にUsbser.sysなどが自動的に載り、アプリからはただのCOMポートとして扱えるようになるUSB機器接続方式。
HID方式
ドライバーの配布なしにWindows標準のHidclass.sys/Hidusb.sysで双方向のレポートをやり取りできる、USB機器接続方式の1つ。
USB機器のPnP通知
CM_Register_NotificationやRegisterDeviceNotificationを使って、USB機器の到着・削除をアプリがポーリングせずに検知する仕組み。
Windows Forms
デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。
USBセレクティブサスペンド
アイドル状態のUSB機器を低消費電力状態に入れるWindowsの電源管理機能。復帰に時間がかかるため初回応答の遅延の原因になり得る。
KMDFドライバー
UMDFでも対応できない要件(フィルタードライバーの積み上げなど)のときに検討する、カーネルモードで動作するWindowsドライバーフレームワーク。
カーネルモードドライバー署名(Windows 10 1607以降)
Windows 10 バージョン1607以降、新規のカーネルモードドライバーがロードされるためにDev Portal(Partner Center)経由でMicrosoftによる署名を受けることを求める要件。
ベンダー提供SDK・専用ドライバー方式
産業用カメラや計測器などで、ベンダーがドライバーとSDKをセットで提供し、それ以外の使い方が事実上できないUSB機器接続方式。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。