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