USB 汎用親ドライバー (Usbccgp.sys)

この記事では、複合デバイス用にマイクロソフトが提供する USB 汎用親ドライバー (Usbccgp.sys) と呼ばれる独立したドライバーについて説明します。

多くの USB デバイスでは、複数の USB インターフェイスが公開されています。 USB の用語では、これらのデバイスは複合デバイスと呼ばれます。 Windows オペレーティング システムには、複合デバイスの各インターフェイスを個別のデバイスとして公開する汎用の親機能が USB バス ドライバー (Usbhub.sys) に含まれています。 この機能は、USB 汎用親ドライバー (Usbccgp.sys) と呼ばれる 独立したドライバーに転送することで合理化され、改善されています。 デバイス ベンダーは、汎用の親ドライバーの機能を使用して、一部のインターフェイスに対するマイクロソフト提供のドライバー サポートを選択的に使用できます。

一部の複合デバイスのインターフェイスは独立して動作します。 たとえば、電源ボタンを備えた複合 USB キーボードには、キーボード用の 1 つのインターフェイスと電源ボタン用の別のインターフェイスがある場合があります。 USB 汎用親ドライバーは、これらの各インターフェイスを個別のデバイスとして列挙します。 オペレーティング システムは、キーボード インターフェイスを管理するためにマイクロソフトが提供するキーボード ドライバーを読み込み、電源キー インターフェイスを管理するためにマイクロソフトのパワー キー ドライバーを読み込みます。

ネイティブ Windows ドライバーがデバイスのインターフェイスをサポートしていない場合は、デバイスのベンダーがインターフェイス用のドライバーと INF ファイルを提供する必要があります。 INF ファイルには、インターフェイスのデバイス ID と一致する INF DDInstall セクションが必要です。 INF ファイルは、複合デバイス自体のデバイス ID と一致してはなりません。これは、汎用の親ドライバーのロードを妨げるためです。 オペレーティング システムが USB 汎用親ドライバーを読み込む方法の詳細については、「USB 複合デバイスの列挙」を参照してください。

一部のデバイスは、特定の機能を実行するために連携してインターフェイスをインターフェイス コレクションにグループ化します。 インターフェイスがインターフェイス コレクションにグループ化されている場合、汎用の親ドライバーは、個々のインターフェイスではなく、各コレクションをデバイスとして扱います。 汎用親ドライバーがインターフェイス コレクションを管理する方法の詳細については、「USB 複合デバイス上のインターフェイス コレクションの列挙」を参照してください。

Windows が複合デバイスのインターフェイス用のクライアント ドライバーを読み込んだ後、汎用の親ドライバーはクライアント ドライバーからのデータ フローを多重化し、これらの個別の対話を複合デバイスの単一のデータ ストリームに結合します。 汎用の親は、複合デバイス全体とそのすべてのインターフェイスの電源ポリシーの所有者です。 また、同期とプラグ アンド プレイ要求も管理します。

マイクロソフトが提供するドライバーが一部のインターフェイスをサポートしているが、その他のインターフェイスはサポートしていない場合、汎用の親ドライバーを使用すると、複合ハードウェアのベンダーのタスクを簡素化できます。 このようなデバイスのベンダーは、サポートされていないインターフェイス用のドライバーのみを提供する必要があります。これは、汎用の親ドライバーにより、サポートされているインターフェイス用のマイクロソフト提供のドライバーの使用が容易になるためです。

次のセクションでは、汎用親ドライバーの機能について説明します。