構成要件
Windows 8 での切り替え間の関数の順序を維持する必要があります。 たとえば、MBIM が Windows-8-Configuration の 3 番目の関数である場合は、IHV-NCM-2.0-Configuration の 3 番目の関数でもあります。
Windows 7 構成
Windows-7-Configuration は、モーフィング デバイスの最初の構成である必要があります。 この構成には、機能の 1 つとして大容量ストレージ機能が必要です。 Windows 8 では、この構成は選択されません。 Windows 7 以前のバージョンの Windows では、Windows-7-Configuration が既定の構成として選択されています。 この構成は、IHV がドライバー パッケージを配置する USB 大容量ストレージ機能を公開するために使用されます。これにより、ユーザーは IHV のドライバーをインストールできます。
Windows 8設定
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 は、MBIM および大容量ストレージ関数と共に IHV 固有の関数を公開します。 この構成は、Windows によって設定または使用されません。 ユーザーによるインストール後の IHV ソフトウェアは、この構成に変形できます。 この構成の関数の順序は、Windows-8-Configuration と同じである必要があることに注意してください。 Windows-8-Configuration には追加の関数を追加できますが、既存の関数は同じ順序で保持する必要があります。
IHV-NCM-1.0-設定
IHV-NCM-1.0-Configuration は、NCM 1.0 および大容量ストレージ機能と共に IHV 固有の関数を公開します。 この構成は、Windows 8 では設定または使用されません。 この構成は、ユーザーが IHV ソフトウェアをインストールした後、Windows 7 以前のバージョンの Windows でのみ使用されます。 IHV ソフトウェアは、Windows-7-Configuration からこの構成にモーフィング デバイスをモーフィングします。
互換性識別子
互換性のある ID は、ドライバーの読み込み優先設定を Windows に示すためにデバイスによって使用される 8 文字以下の文字列です。 デバイスは、Microsoft OS 記述子を使用して互換性のある ID を定義できます。 互換性のある ID とサブ互換性のある ID は、個々の関数に適用されます。 各構成には、互換性のある ID の個別のセットを持つことができます。これは、その構成内の一連の関数にマップされます。 互換性のある ID とサブ互換性のある ID は個々の関数に適用されますが、構成が選択されていない場合、モーフィング デバイスは 1 つの互換性のある ID を持つことができます。 この互換性のあるサブ互換性のある ID は、モーフィング デバイス全体に論理的に適用されます。
USBCCGP の読み込み
Windows 8 では、モーフィング デバイスで Windows-8-Configuration を自動的に選択するために USBCCGP ドライバーが必要です。
USBCCGP ドライバーを読み込むには、モーフィング デバイスで構成が選択されていない場合、モーフィング デバイスは次の互換性のあるサブ互換性 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 を返す必要があります。
USBHUB が USBCCGP を読み込んだ後、USBCCGP は、前に報告されたサブ互換性 ID によって示される構成を選択します。 USBCCGP は、互換性のある ID とサブ互換性のある ID を 2 回目に照会します。 この時点で、モーフィング デバイスは、現在選択されている構成の互換性 ID とサブ互換性 ID を返す必要があります。 したがって、USBCCGP が特定の構成を読み込んで選択した後、モーフィング デバイスは、報告される互換性のあるサブ互換 ID をモーフィングする必要があります。 モーフィング デバイスは、構成の選択後に USBCCGP を読み込むのに使用される互換性のあるサブ互換性 ID を報告してはなりません。
列挙中にデバイスから Microsoft OS 記述子に対してクエリを実行する USBHUB。
デバイスは、未構成の状態で CompatId を返します。 この CompatId は、USBCCGP の読み込みに使用されます。
USBCCGP は、サブ互換 ID で報告された構成を選択します。
デバイスは、新しい構成に基づいて Microsoft OS 記述子を変形します。 Microsoft OS 記述子の USBCCGP クエリ。
デバイスは CompatID を返しません。 クラス/サブクラス/プロトコルに基づいて、USBCCGP は USBSTOR と MBCD を読み込みます。