MB Union Functional Descriptor
共用体関数記述子
UFD を実装するモバイル ブロードバンド デバイスには、CDC デバイスに対して要求される 2/0/0 というデバイス クラス/サブクラス/プロトコルがあります。 これにより、Windows がデバイスに USBCCGP を読み込むのを防ぐことができます。 Windows が複合デバイスに USBCCGP を読み込む方法については、「USB 汎用親ドライバー (Usbccgp.sys)」を参照してください。
Windows で USBCCGP の読み込みを許可するには、デバイスが構成されていない場合に、デバイスで "CDC_WMC" という Microsoft OS と互換性のある ID を報告する必要があります。 "CDC_WMC" という互換性のある ID を検出したら、Windows は USBCCGP を読み込み、USBCCGP はデバイスの構成を 1 に設定します。 その後、USBCCGP は、Microsoft OS 互換 ID に対し、もう一度クエリを実行します。 ただし、この場合は、"CDC_WMC" という Microsoft OS と互換性のある ID をデバイスから報告すべきではありません。 デバイスは、選択した構成の関数に対して Microsoft OS と互換性のある ID を報告する場合があります。
Microsoft OS 記述子の USBHUB クエリ (デバイスが構成されていない場合)
デバイスが "CDC_WMC" で応答すると、Windows は USBCCGP を読み込みます
USBCCGP は、デバイスの構成 #1 を選択します。
デバイスが構成を選択し、互換性のある ID の一覧を変形します。 デバイスには、Function2 に必要な CompatID2 が含まれている場合があります。
読み込み後、Microsoft OS と互換性のある ID に対して USBCCGP クエリをもう一度実行します。
デバイスは、デバイスの関数に対応する互換性のある ID があれば報告します。 すると、USBCCGP は、デバイスの各関数の子デバイス ノードを作成します。
MBIM 下位互換性のある関数
NCM 1.0 仕様と下位互換性のある MBIM 関数は、既定で NCM 1.0 関数として起動されます。 MBIM 下位互換性のある関数で構成されるモバイル ブロードバンド デバイスは、MBIM 関数に対して "MBIM" という Microsoft OS と互換性のある ID を報告する必要があります。 これにより、Windows 8 は NCM 1.0 関数を MBIM 関数として検出し、MBCD を関数ドライバーとして読み込むことができます。