次の方法で共有


USB デバイスのモバイル ブロード バンド実装ガイドライン

このトピックでは、モバイル ブロードバンド デバイスの製造元が Windows 用に準拠している USB デバイスを生成するのに役立つ特定の実装ガイダンスについて説明します。 USB-IF デバイス作業グループがリリースした USB NCM モバイル ブロードバンド インターフェイス モデル (MBIM) V1.0 仕様と組み合わせて使用する必要があります。

このトピックの情報は、次の場合に適用されます。

  • Windows 8
  • Windows 8.1

MBIM オープンの遅延

MBIM デバイスは、ホストから MBIM OPEN メッセージを受信したときに、初期化を完了するのに時間を要する場合があります。 デバイスは初期化が完了するのを待ってから、MBIM OPEN メッセージに応答する必要があります。 デバイスは、MBIM_STATUS_BUSY などのエラー状態でメッセージに応答することはできず、ホストが MBIM OPEN メッセージを使用してデバイスをポーリングすることを期待する必要があります。 MBIM_STATUS_SUCCESS 以外の状態で MBIM OPEN に応答すると、ホストの初期化プロセスが終了します。

マルチキャリア\マルチサブスクリプション

詳細については、「マルチモード対応 MB デバイスとマルチキャリア対応 MB デバイスを実装するための IHV 向けガイダンス」を参照してください。

MBIM_CID_HOME_PROVIDER

MBIM デバイスは説明された状況下で、次に示す状態コードを使用して SET MBIM_CID_HOME_PROVIDER 要求を失敗してはなりません。 次の状態は、QUERY MBIM_CID_HOME_PROVIDER 要求には有効ですが、SET 要求には適用されません。

  • MBIM_STATUS_SIM_NOT_INSERTED - MBIM デバイスは、新しいホーム プロバイダーの SIM は存在しているものの、以前のホーム プロバイダーの SIM が挿入されていない場合、状態が MBIM_STATUS_SIM_NOT_INSERTED の SET MBIM_CID_HOME_PROVIDER 要求に失敗してはなりません。
  • MBIM_STATUS_BAD_SIM - MBIM デバイスは、新しいホーム プロバイダーの SIM が正常であるものの、以前のホーム プロバイダーの SIM に問題がない場合、MBIM_STATUS_BAD_SIM による SET MBIM_CID_HOME_PROVIDER 要求に失敗してはなりません。
  • MBIM_STATUS_PIN_REQUIRED - MBIM デバイスは、PIN ロックされているのが以前の SIM か新しい SIM かに関係なく、MBIM_STATUS_PIN_REQUIRED による SET MBIM_CID_HOME_PROVIDER 要求に失敗してはなりません。

MBIM_CID_VISIBLE_PROVIDERS

  • MBIM_STATUS_SIM_NOT_INSERTED - MBIM_VISIBLE_PROVIDERS_ACTION が MBIMVisibleProvidersActionRestrictedScan に設定されている場合、現在のホーム プロバイダーの SIM が存在していないため、MBIM デバイスは、MBIM_STATUS_SIM_NOT_INSERTED による MBIM_CID_VISIBLE_PROVIDERS 要求を失敗してはなりません。
  • MBIM_STATUS_PIN_REQUIRED - MBIM_VISIBLE_PROVIDERS_ACTION が MBIMVisibleProvidersActionRestrictedScan に設定されている場合、現在のホーム プロバイダーの SIM が PIN ロックされているため、MBIM デバイスは、MBIM_STATUS_PIN_REQUIRED による MBIM_CID_VISIBLE_PROVIDERS 要求を失敗してはなりません。

PIN 操作への応答

MBIMPinOperationEnter 要求に応答する場合、MBIM デバイスは次のガイドラインに従う必要があります。

  • MBIMPinOperationEnter 要求が成功し、デバイスで PIN が必要なくなった場合、デバイスは状態を MBIM_STATUS_SUCCESS に設定し、MBIM_PIN_INFO::Pin TypeMBIMPinTypeNone に設定する必要があります。

  • PIN が既に要求された状態にある場合、デバイスは PIN 有効化および PIN 無効化の操作に対して状態を MBIM_STATUS_SUCCESS に設定する必要があります。 デバイスは MBIM_PIN_INFO::PinTypeMBIMPinTypeNone に設定する必要があります。 他のメンバーは無視されます。

  • PIN モードが無効から有効に変更された場合、PIN の状態は MBIMPinStateUnlocked である必要があります。

  • PIN1 が有効になっている場合、デバイスの電源を切り換えると、PIN の状態は MBIMPinStateLocked になります。

  • その他のすべての PIN では、モバイル ブロードバンド デバイス固有の条件に応じて、PIN の状態が MBIMPinStateUnlocked から MBIMPinStateLocked に変わる可能性があります。

  • PIN がサポートされていません: PIN 操作がデバイスでサポートされていない場合、デバイスは状態を MBIM_STATUS_NO_DEVICE_SUPPORT に設定する必要があります。 たとえば、PIN2 の有効化と無効化は通常、モバイル ブロードバンド デバイスではサポートされていないため、上記のエラー コードを返す必要があります。 他のすべてのメンバーは無視されます。

  • PIN を入力する必要があります: PIN 操作で PIN を入力する必要がある場合、デバイスは状態を MBIM_STATUS_PIN_REQUIRED に設定し、MBIM_PIN_INFO::PinTypeMBIMPinTypeXxx に設定する必要があります。 他のメンバーは無視されます。

  • PIN 変更操作: デバイスが有効な状態の場合にのみ PIN 値の変更を制限する場合は、無効な状態で変更する要求を MBIM_STATUS_PIN_DISABLED で返す必要があります。

  • PIN 再トライアル: 障害が発生した場合、デバイスは状態を MBIM_STATUS_FAILURE に設定し、MBIM_PIN_INFO::PinTypeMBIM_SET_PIN で指定したものと同じ値に設定する必要があります。 MBIM_PIN_INFO::RemainingAttempts を除き、他のメンバーは無視されます。 これは、正しくない PIN が入力された場合に発生する可能性があります。

  • PIN ブロック: MBIM_PIN_INFO::RemainingAttempts の数が 0 の場合、PIN はブロックされます。 PIN ブロック解除操作が利用できない場合、デバイスは状態を MBIM_STATUS_FAILURE に設定し、MBIM_PIN_INFO::PinTypeMBIMPinTypeNone に設定する必要があります。 MBIM_PIN_INFO::RemainingAttempts は 0 に設定する必要があり、他のすべてのメンバーは無視されます。 デバイスが PIN のブロック解除操作をサポートしている場合、デバイスは PIN のブロック解除手順に従って、要求に応答する必要があります。

  • PIN のブロック解除: MBIM_PIN_INFO::RemainingAttempts が 0 の場合、PIN はブロックされます。 PIN のブロックを解除するために、デバイスは対応する PUK (該当する場合) を要求する場合があります。 この場合、デバイスは状態を MBIM_STATUS_FAILURE に、MBIM_PIN_INFO::PinType を対応する MBIMPinTypeXxxPUK に、PinStateMBIMPinStateLocked に設定する必要があります。また、MBIM_PIN_INFO::RemainingAttempts には、有効な PUK の入力を許可する試行回数を設定する必要があります。

  • PIN ブロックが原因でデバイスまたは SIM がブロックされている場合、デバイスは、ReadyStateMBIMSubscriberReadyStateDeviceLocked に設定して、 MBIM_CID_SUBSCRIBER_READY_STATUS 通知を送信する必要があります。

  • PIN1 ブロック時にアクティブな PDP コンテキストがある場合、デバイスは PDP コンテキストを非アクティブ化し、PDP の非アクティブ化とリンク状態の変更に関する通知をオペレーティング システムに送信する必要があります。

  • 要求が成功した場合、デバイスは状態を MBIM_STATUS_SUCCESS に設定する必要があります。 他のメンバーは無視されます。

  • MBIMPinOperationEnter 要求が失敗した場合、デバイスは状態を MBIM_STATUS_FAILURE に設定し、次の詳細に従って適用可能なデータを含める必要があります。

    • PIN が無効であるか PIN が要求されていません: MBIMPinOperationEnter セット要求に対して、対応する PIN が無効になっているか、デバイスで現在要求されていない場合、デバイスは MBIM_PIN_INFO::PinTypeMBIMPinTypeNone に設定する必要があります。 他のすべてのメンバーは無視されます。

    • PIN がサポートされていません: 指定された PIN がデバイスでサポートされていない場合、デバイスは状態を MBIM_STATUS_NO_DEVICE_SUPPORT に設定する必要があります。

    • PIN 再トライアル: このモードでは、この特定の種類の PIN に対して MBIM_PIN_INFO::RemainingAttempts 値が 0 以外であるため、デバイスで PIN を再入力する必要があります。 デバイスは、MBIM_PIN_INFO::PinType を、MBIM_SET_PINMBIM_PIN_INFO::PinType と同じ値に設定する必要があります。

    • PIN のブロック: MBIM_PIN_INFO::RemainingAttempts が 0 の場合、PIN はブロックされます。 PIN ブロック解除操作が利用できない場合、デバイスは状態を MBIM_STATUS_FAILURE に設定し、MBIM_PIN_INFO::PinTypeMBIMPinTypeNone に設定する必要があります。 他のすべてのメンバーは無視されます。 デバイスが PIN のブロック解除操作をサポートしている場合、デバイスは PIN のブロック解除手順に従って、要求に応答する必要があります。

    • PIN のブロック解除: MBIM_PIN_INFO::RemainingAttempts が 0 の場合、PIN はブロックされます。 PIN のブロックを解除するために、デバイスは対応する PIN ロック解除キー (PUK) を要求する場合があります (該当する場合)。 この場合、デバイスは MBIM_PIN_INFO::PinType を、関連する詳細と共に対応する MBIMPinTypeXxxPUK に設定する必要があります。

    • ブロックされた PUK: 失敗したトライアルの回数が MBIMPinTypeXxxPUK の入力のプリセット値を超えた場合、PUK はブロックされます。 デバイスは、状態を MBIM_STATUS_FAILURE に設定し、MBIM_PIN_INFO::PinTypeMBIMPinTypeNone に設定して、これを通知する必要があります。 PUK1 がブロックされている場合、デバイスは ReadyStateMBIMSubscriberReadyStateBadSim に設定された MBIM_CID_SUBSCRIBER_READY_STATUS を送信する必要があります。

    • MBIM デバイスは、MBIMPinOperationEnable 要求、MBIMPinOperationDisable 要求、または MBIMPinOperationChange 要求への応答時に、次のガイドラインに従う必要があります。

自動パケット サービス アタッチ

自動パケット サービス アタッチをサポートする MBIM デバイスは、モバイル ネットワークからのパケット サービスのアタッチとデタッチを独自の判断で管理します。 ホストも、ユーザー要求時にそのようなデバイスにアタッチ要求を送信できます。 デバイスは、ホストからアタッチ要求を受信したら、次のように処理する必要があります。

  • デバイスがアタッチされておらず、かつアタッチ操作の途中ではなく、そしてアタッチ可能な場合は、モバイル ネットワークで新しいアタッチ手順を開始する必要があります。
  • デバイスがアタッチされておらず、自動アタッチ操作の途中である場合は、自動アタッチ操作が完了するのを待ってから、自動アタッチ操作の状態でホストからのアタッチ要求を完了する必要があります。
  • デバイスが既にアタッチされている場合は、ホストからのアタッチ要求を正常に完了する必要があります。

信号強度損失とデータ接続損失

デバイスが信号強度を失った場合、デバイスは MBIMActivationStateDeactivatedMBIMPacketServiceStateDetachedMBIMRegisterStateDeregistered の順序で表示する必要があります。 デバイスは、コンテキストのアクティブ化中にパケット サービスを失った場合、MBIMActivationStateDeactivatedMBIMPacketServiceStateDetached の順序で表示する必要があります。 次のシーケンス図は、ホストとデバイス間の相互作用を示しています。

Sequence diagram illustrating the interaction between the host and the device.

DNS サーバー情報

基本的な IP 情報 (MBIM セクション 10.5.20.1 の定義どおり) が MBIM_CID_IP_CONFIGURATION 経由で提供される場合、DNS サーバー情報 (MBIM セクション 10.5.20.1 の定義どおり) も MBIM_CID_IP_CONFIGURATION 経由で提供できます。 DNS サーバー情報を更新する場合、MBIM_CID_IP_CONFIGURAITON には前に取得した完全な基本的な IP 情報が含まれている必要があります。 基本的な IP 情報が MBIM_CID_IP_CONFIGURATION 経由で提供されていない場合でも、DNS サーバー情報は MBIM_CID_IP_CONFIGURATION 経由でのみ提供できます。 これは、IPv4 と IPv6 の両方に適用されます。

IPv6

基本的な IP 情報 (MBIM セクション 10.5.20.1 の定義どおり) の場合、想定される IP 層構成メカニズムはルーター アドバタイズ (RA) からの情報です。 DNS サーバー情報 (MBIM セクション 10.5.20.1 の定義どおり) の場合、想定される IP 層構成メカニズムは DHCPv6 です。

  • RA からの基本的な IP 情報 - モバイル ネットワークが RA を介して基本的な IP 情報 (MBIM セクション 10.5.20.1 の定義どおり) を提供する場合、MBIM デバイスは RA パケットをホストに転送できるようにする必要があり、RA パケットを傍受したり、RA パケットに存在する基本 IP 情報を MBIM_CID_IP_CONFIGURATION 経由で提供したりしてはなりません。
  • RA からの DNS サーバー情報 - Windows でサポートされている DNS サーバー情報 (MBIM セクション 10.5.20.1 の定義どおり) の唯一の IP 層構成メカニズムは、DHCPv6 です。 MBIM デバイスは、RA に存在する場合でも、MBIM_CID_IP_CONFIGURATION 経由で DNS サーバー情報を構成する必要があります。
  • DHCPv6 からの基本的な IP 情報と DNS サーバー情報 - モバイル ネットワークが DHCPv6 から基本的な IP 情報と DNS サーバー情報 (MBIM セクション 10.5.20.1 の定義どおり) を提供する場合、MBIM デバイスは DHCPv6 パケットをホストに転送できるようにし、DHCPv6 パケットを傍受したり、MBIM_CID_IP_CONFIGURATION 経由で DHCPv6 パケットに存在する基本的な IP 情報と DNS サーバー情報を提供したりしてはなりません。

MBIM_CID_RADIO_STATE

SIM が存在しない場合、MBIM デバイスは、MBIM_STATUS_SIM_NOT_INSERTED SIM という状態で MBIM_CID_RADIO_STATE 操作を失敗してはなりません。 SIM がないために無線操作が失敗するということがあってはなりません。

認証 CID のバイトの順序付け要件

以下に示すバイト配列フィールドのデータは、ホストバイト順にする必要があります。

MBIM_CID_SIM_AUTH

MBIM_SIM_AUTH_REQ

  1. Rand1
  2. Rand2
  3. Rand3

MBIM_CID_AKA_AUTH

MBIM_AKA_AUTH_REQ

  1. Rand
  2. Autn

MBIM_AKA_AUTH_INFO

  1. リソース
  2. IK
  3. CK
  4. Auts

MBIM_CID_AKAP_AUTH

MBIM_AKAP_AUTH_REQ

  1. Rand
  2. Autn

MBIM_AKAP_AUTH_INFO

  1. リソース
  2. IK
  3. CK
  4. Auts

Windows では、デバイスの初期化中にのみ、リンク最大転送単位 (MTU) の構成がサポートされています。 Windows は、MBIM_CID_IP_CONFIGURATION を使用して報告された MTU に基づいて、リンク MTU を更新しません。 デバイスは、MBIM_FUNCTIONAL_DESCRIPTOR.wMaxSegmentSize を使用して、ネットワークでサポートされているリンク MTU を通信する必要があります。 この方法で報告されるリンク MTU 値は、最小 1280 および最大 1500 である必要があります。