MB ID モーフィング ソリューションの詳細

構成要件

Windows 8 での切り替えにおける関数の順序は維持する必要があります。 たとえば、MBIM が Windows-8-Configuration の 3 番目の関数である場合、IHV-NCM-2.0-Configuration の 3 番目の関数でもあります。

Windows-7-Configuration

Windows-7-Configuration は、モーフィング デバイスの最初の構成となります。 この構成には、機能の 1 つとして大容量ストレージ機能が含まれます。 Windows 8 では、この構成は選択されません。 Windows 7 以前のバージョンの Windows では、Windows-7-Configuration が既定の構成として選択されています。 この構成は、IHV がドライバー パッケージを配置する USB 大容量ストレージ機能を公開するために使用されます。これにより、ユーザーは IHV のドライバーをインストールできます。

Windows-8-Configuration

Windows-7-Configuration では、MBCD が読み込まれる機能の 1 つとして、MBIM 機能が公開されます。 Windows 8 では、USBCCGP に返される subCompatibleID 値で、この構成の値が使用されます。 USBCCGP は、読み込まれるときにこの構成を選択します。 Windows-8-Configuration は、構成 2、3、または 4 のいずれかとなります。 Windows-8-Configuration としてサポートされるその他の構成はありません。 この構成では、ユーザーが IHV のドライバー パッケージをインストールできるようにする最初の機能として大容量ストレージ機能も公開されます。

IHV-NCM-2.0-Configuration

IHV-NCM-2.0-Configuration は、IHV 固有の機能と、MBIM と大容量ストレージの機能を公開します。 この構成は、Windows によって設定または使用されません。 ユーザーによるインストール後の IHV ソフトウェアは、この構成にモーフィングできます。 この構成の関数の順序は、Windows-8-Configuration と同じであることに注意してください。 Windows-8-Configuration には追加の関数を追加できますが、既存の関数は同じ順序で維持されることになります。

IHV-NCM-1.0-Configuration

IHV-NCM-1.0-Configuration は、IHV 固有の機能と、NCM 1.0 および大容量ストレージ機能を公開します。 この構成は、Windows 8 によって設定または使用されません。 この構成は、ユーザーが IHV ソフトウェアをインストールした後、Windows 7 以前のバージョンの Windows でのみ使用されます。 IHV ソフトウェアは、Windows-7-Configuration からこの構成にモーフィング デバイスをモーフィングします。

互換性 ID

互換 ID は、ドライバーの読み込み優先設定を Windows に示すためにデバイスによって使用される 8 文字以下の文字列です。 デバイスは、Microsoft OS 記述子を使用して互換 ID を定義できます。 互換 ID と準互換 ID は、個々の関数に適用されます。 各構成は、構成内の一連の関数にマップされる互換 ID の個別セットを持つことができます。 互換 ID と準互換 ID は個々の関数に適用されますが、構成が選択されていない場合、モーフィング デバイスは 1 つの互換 ID を持つことができます。 この互換 ID と準互換 ID は、モーフィング デバイス全体に論理的に適用されます。

USBCCGP の読み込み

Windows 8 では、モーフィング デバイスで Windows-8-Configuration を自動的に選択するために USBCCGP ドライバーが必要です。

USBCCGP ドライバーを読み込むために、モーフィング デバイスは、モーフィング デバイスで構成が選択されていない場合に、次の互換 ID と準互換 ID を報告する必要があります。

  • モーフィング デバイスがインターフェイスを関数にグループ化するために IAD を使用する場合は、互換 ID を "ALTRCFG" として、準互換 ID を Windows-8-Configuration の番号として報告することになります。
  • モーフィング デバイスがインターフェイスを関数にグループ化するために WCM UFD を使用する場合、互換 ID を "WMCALTR" として、準互換 ID を Windows-8-Configuration の番号として報告することになります。

たとえば、Windows-8-Configuration が Configuration 3 の場合、準互換 ID はどちらの場合も "3" になります。

互換 ID のモーフィング

USB デバイスのリスト中、モーフィング デバイスで構成が選択されていない場合、USBHUB はモーフィング デバイスに互換 ID をクエリします。 モーフィング デバイスは、「MB ID モーフィング ソリューションの概要」の説明に従って、USBCCGP の読み込みに使用される互換 ID と準互換 ID を返すことになります。

USBHUB が USBCCGP を読み込んだ後、USBCCGP は、前に報告された準互換 ID によって示される構成を選択します。 それから USBCCGP は、互換 ID と準互換 ID に 2 回目のクエリを行います。 この時点で、モーフィング デバイスは、現在選択されている構成の互換 ID と準互換 ID を返すことになります。 したがって、USBCCGP が特定の構成を読み込んで選択した後、モーフィング デバイスは、報告される互換 ID と準互換 ID をモーフィングする必要があります。 モーフィング デバイスは、構成の選択後に USBCCGP を読み込むのに使用される互換 ID と準互換 ID を報告してはなりません。

usbhub querying the microsoft os descriptor from the device during enumeration.

リスト中にデバイスから Microsoft OS 記述子にクエリを行う USBHUB。

device returns compatid in the not-configured state.

デバイスは、未構成の状態で CompatId を返します。 この CompatId は、USBCCGP の読み込みに使用されます。

usbccgp selects the configuration reported in the subcompatible id.

USBCCGP は、準互換 ID で報告された構成を選択します。

device morphs its microsoft os descriptor based on the new configuration. usbccgp queries for the microsoft os descriptor.

デバイスは、新しい構成に基づいて Microsoft OS 記述子をモーフィングします。 Microsoft OS 記述子に対する USBCCGP クエリ。

device does not return any compatid. based on the class / subclass / protocol, usbccgp loads usbstor and mbcd.

デバイスは CompatID を返しません。 クラス/サブクラス/プロトコルに基づいて、USBCCGP は USBSTOR と MBCD を読み込みます。