携帯電話会社ごとにネットワーク用の APN 構成が異なるため、携帯ネットワーク接続可能なデバイスにはプロビジョニングが不可欠です。 APN 構成は、通常、次の 2 つのカテゴリに分割できます。
- OS 上にこれらの接続を必要とするアプリケーションまたはクライアントがあるため、OS に認識されている APN 構成。
- OS とそのクライアントが利用していない接続に対してモデムによって内部的に使用されるため、OS に認識されない APN 構成。
理想的には、モデムは OS が認識する必要のない APN 構成のみを格納する必要があります。 ただし、IHV と OEM のパートナーは、従来、インターネットと購入の APNs、OS に知られている構成をモデムでも提供してきました。 Windows 10 バージョン 1703 がリリースされる前は、Windows はインターネットを読み取り、モデムから APN 構成を購入してインターネット接続を確立するだけです。 Windows 10 バージョン 1703 以降では、特にユーザー設定や携帯電話の構成を変更する OMA-DM などのクライアントが OS に存在する場合は、モデムの APN 構成を Windows で管理する必要がある場合があります。 これは、モデムの APN 設定にも影響する可能性があります。 たとえば、IMS 上の SMS に IMS APN を使用している IMS スタックがモデムに存在する可能性があります。 通常、これらの接続は OS に公開されませんが、特定のシナリオでは、IMS APN の構成を変更する必要があります。 この変更は、OS を通じて行うことができます。 これをサポートするために、Windows 10 バージョン 1703 以降では、OS はさまざまな種類の APNs をモデムに構成できます。
USB フォーラムの MBIM 1.0 と Microsoft NDIS にはそれぞれ、既存の CID と OID があり、OS がモデムの APN 構成を設定してクエリを実行できるようにします。 MBIM 1.0 の場合、これはMBIM_CID_PROVISIONED_CONTEXTを介して行い、NDIS の場合は OID_WWAN_PROVISIONED_CONTEXTSを介してこれを行います。 ただし、既存の CID と OID は、電源サイクルや SIM スワップなど、さまざまな状況でモデムがどのように動作することが予想されるかについて明確なガイダンスで設計されていませんでした。 今後、モデムでプロビジョニングされたコンテキストの OS 構成と更新をサポートするデバイスは、Windows 10 バージョン 1703 で新しいバージョンの CID と OID を実装する必要があります。 下位互換性を確保するために、1703 より前のバージョンの OS で新しいハードウェアをサポートする IHV/OEM の場合、既存のMBIM_CID_PROVISIONED_CONTEXTとOID_WWAN_PROVISIONED_CONTEXTSを引き続きサポートする必要があります。 Windows 10 バージョン 1703 以降では、デバイスが新しいバージョンの CID と OID をサポートしている場合、OS は新しいバージョンのコマンドのみを使用して、モデムの APN コンテキスト構成のクエリと設定を行います。
プロビジョニングされたコンテキスト操作の MB インターフェイスの更新
MBIM には、モデムに格納されているコンテキストを取得して置き換えるコマンドが含まれていますが、プロファイルを "無効にする" または "有効にする" フィールドはありません。 そのため、この機能を含めるには、Windows 10 バージョン 1703 の既存のMBIM_CID_PROVISIONED_CONTEXTを更新する必要があります。 MBIM にはバージョン管理メカニズムがないため、新しい MSFT 独自の CID がMBIM_CID_MS_PROVISIONED_CONTEXT_V2として定義されます。
サービス名 = 基本的な接続拡張機能
UUID = UUID_BASIC_CONNECT_EXTENSIONS
UUID 値 = 3d01dcc5-fef5-4d05-0d3abef7058e9aaf
| CID | コマンド コード | 最小 OS バージョン |
|---|---|---|
| MBIM_CID_MS_PROVISIONED_CONTEXT_V2 | 1 | Windows 10 Version 1703 |
MBIM_CID_MS_PROVISIONED_CONTEXT_V2
説明
MBIM 1.0 では、モデムでプロビジョニングされたコンテキストを管理するために OS とその上位クライアントのMBIM_CID_PROVISIONED_CONTEXTが定義されていますが、Windows は従来、モデム内のコンテキストのみを照会していましたが、OS からは設定しませんでした。 Windows 10 バージョン 1703 以降では、OS でモデムのコンテキストを構成する必要性が高まっています。 たとえば、OS に不透明な IMS スタックがモデムに存在する場合、OS はモデムが使用する IMS APN を指定できる必要があります。 各モデム IHV には独自の方法でコンテキストをモデムに格納できるため、OS が ContextId レベルでプロファイルを管理することは、MBIM_CID_PROVISIONED_CONTEXTが提案する方法では不可能です。 代わりに、OS の観点から、各コンテキストの種類に使用するコンテキストを指定することがより重要です。 モデム内の既存のプロビジョニング済みコンテキストの数に関係なく、IMS の例に戻ります。OS が MBIM_CONTEXT_TYPE = IMS を持つコンテキストを設定する場合、モデムによって開始されるすべての IMS トラフィックは、そのコンテキストでのみ試行する必要があります。
MBIM 1.0 では、挿入された SIM カードのプロバイダー ID (MCC/MNC ペア) に一致するコンテキストでのみ、MBIM_CID_PROVISIONED_CONTEXTが Query を呼び出すことができることを指定します。 Set 要求の場合、MBIM_CID_PROVISIONED_CONTEXTは、格納するコンテキストのプロバイダー ID を指定できます。 MBIM_CID_MS_PROVISIONED_CONTEXT_V2は、MBIM 1.0 と似ていますが異なる動作を指定します。 クエリごとに、OS は引き続きモデムが挿入された SIM カードのプロバイダー ID と一致するコンテキストのみを返すように期待します。 Set の場合、コマンドは、SIM カード内の現在のプロバイダー ID と一致しないコンテキストを設定する OS を有効にしなくなります。 Set 要求では、提示された SIM カードの現在のプロバイダー ID のコンテキストを作成することが想定されます。 たとえば、ユーザーは SIM 1 から SIM 2 にスワップしてから、SIM 1 に戻ります。 最初の SIM スワップ中に、モデムは SIM 2 のコンテキストを読み込む前にすべてのコンテキストを解決する必要があります。 ユーザーが SIM 1 に戻るときに、SIM 1 の出荷時の既定の構成を復元する必要があります。 モデムが SIM スワップ間でランタイム構成を保存することは想定されていません。
次の図は、ユーザーが 1 つの SIM から別の SIM にスワップしてから最初の SIM に戻ったときのサンプル フローを示しています。
OS またはユーザーがモデムのコンテキスト設定を元の設定に復元する場合に備えて、モデムを事前に構成した OEM および IHV は、元のファクトリ構成を維持する必要があります。 現在挿入されている SIM のプロバイダー ID の元のファクトリ コンテキストのみを復元する必要があります。 元のファクトリ設定の構成済みコンテキストは、OS の構成で上書きしないでください。 次の図は、ユーザーが出荷時の設定を復元することを選択した場合のフローの例です。
SIM が見つからない、ロックされている、またはプロバイダー ID にアクセスできない場合は、モデムがクエリ要求または Set 要求に失敗することが予想されます。 モデムには、プロバイダー ID ごとに、CONTEXT_TYPEごとにコンテキストが 1 つだけ必要です。 IHV または OEM がモデム内のモデム コンテキストを事前構成することを決定した場合は、コンテキストが、その構成を選択したプロバイダーごとに正しく構成されていることを確認することが重要です。 挿入された SIM カードに IHV 事前構成済みコンテキストがない場合、モデムには OS の構成がないコンテキストは含まれません。 IHV と OEM は、モデムのコンテキストが存在する場合には OS がそれを接続に使用し、Windows の APN データベースから上書きしないように、MBIM_MS_CONTEXT_SOURCE を MbimMsContextSourceModemProvisioned に設定する必要があります。
モデム マップがコンテキストを処理し、既存のMBIM_CID_PROVISIONED_CONTEXTを介してコンテキストを提示する方法は、各 IHV に依存し、このドキュメントの範囲外です。
新しいMBIM_CID_MS_PROVISONED_CONTEXT_V2 コマンドは、MBIM 1.0 の既存の MBIM_CID_PROVISIONED_CONTEXT コマンドとほぼ同じですが、いくつかの追加機能があります。 1 つ目は、モデムのコンテキストの種類に関連付けられているコンテキストを有効または無効にする機能を OS に提供します。 モデムでコンテキストが無効になっている場合、モデムは、OS に対して認識されていないものであっても、ネットワークとの接続に保存されているコンテキストを使用しないことが期待されます。 OS がモデムの無効なコンテキストに一致する接続を要求した場合、モデムはネットワークに信号を送ることなく、すぐに要求を失敗させる必要があります。 照合プロセスは、MBIM_MS_CONTEXT_V2構造体内のすべてのフィールドと一致する必要があります。
MBIM 1.0 のMBIM_CONTEXT_IP_TYPE構造体は、MBIM_CID_CONNECTにのみ使用されます。 MBIM_CID_MS_PROVISIONED_CONTEXT_V2では、Microsoft は各コンテキストのパラメーターの 1 つとして IP の種類を追加しました。 特定のコンテキストに対して構成されていない場合、モデムは MBIMContextIPTypeDefault を報告する必要があります。
Windows 10 バージョン 1703 では、MBIM_CID_MS_PROVISIONED_CONTEXT_V2をサポートする新しいハードウェアでは、レガシ MBIM_CID_PROVISIONED_CONTEXTはファースト パーティ コンポーネントから使用されません。 MBIM_CID_PROVISIONED_CONTEXTを送信する他のレガシ クライアント/OS コンポーネントがある場合、モデムは Windows 10 バージョン 1703 より前のバージョンの Windows と同様に結果を返す必要があります。
クエリ
MBIM_MS_PROVISIONED_CONTEXTS_INFOは、InformationBuffer の Query と Set の両方の完全なメッセージから返されます。
クエリの場合、InformationBuffer は null です。
オン
Set の場合、InformationBuffer にはMBIM_MS_SET_PROVISIONED_CONTEXT_V2構造体が含まれています。 Set 操作では、各モデム IHV にはコンテキスト ストレージを管理する独自の方法があるため、OS は ContextId フィールドを指定しなくなり、モデムがコンテキストを適切なスロットにマップすることを想定しています。 OSがコンテキストを設定する際には、指定されたコンテキストのMBIM_CONTEXT_TYPEに一致するすべての接続に対して、モデムがそれを使用することが想定されます。 MBIM_CONTEXT_TYPEがモデムで認識されない場合は、モデムと接続できない場合でも保存する必要があります。
未承諾イベント
Event InformationBuffer には、MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2構造体が含まれています。 場合によっては、プロビジョニングされたコンテキストの一覧は、ネットワークによって Over-The-Air (OTA) または OS から MBIM_CID_MS_PROVISIONED_CONTEXT_V2 コマンドを経由しないショート メッセージ サービス (SMS) によって更新されます。 この関数は、プロビジョニングされたコンテキストの一覧を更新し、MBIM_MS_CONTEXT_SOURCE を MbimMsContextSourceOperatorProvisioned に適宜タグ付けする必要があります。 その後、関数は、更新されたリストでこのイベントを使用して更新プログラムについてホストに通知する必要があります。
パラメーター
| オペレーション | オン | クエリ | 通知 |
|---|---|---|---|
| コマンド | MBIM_SET_MS_PROVISIONED_CONTEXT_V2 | 適用なし | 適用なし |
| [応答] | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 |
データ構造
クエリ
InformationBuffer は NULL、InformationBufferLength はゼロでなければなりません。
オン
InformationBuffer では、次のMBIM_SET_MS_PROVISIONED_CONTEXT_V2データ構造を使用する必要があります。
| オフセット | サイズ | フィールド | タイプ | 説明 |
|---|---|---|---|---|
| 0 | 4 | オペレーション | MBIM_MS_CONTEXT_OPERATIONS | SET コマンドを使用する操作の種類を指定します。 MbimMsContextOperationDelete に設定されている場合は、指定したMBIM_CONTEXT_TYPESのコンテキストを削除し、MBIM_SET_MS_PROVISIONED_CONTEXT_V2内の他のすべてのフィールドを無視する必要があります。 MbimMsContextOperationRestoreFactory に設定すると、OS で作成または変更されたすべてのコンテキストを削除し、既定のファクトリ構成済みコンテキストを読み込み、MBIM_SET_MS_PROVISIONED_CONTEXT_V2内の他のすべてのフィールドを無視する必要があります。 |
| 4 | 16 | ContextType | MBIM_CONTEXT_TYPES | 表されるコンテキストの種類を指定します。たとえば、インターネット接続、VPN (企業ネットワークへの接続)、Voice-over-IP (VOIP) などです。 詳細については、MBIM_CONTEXT_TYPESの表を参照してください。 |
| 20 | 4 | IPタイプ | MBIM_CONTEXT_IP_TYPES | 表されるコンテキストの種類を指定します。たとえば、インターネット接続、VPN (企業ネットワークへの接続)、Voice-over-IP (VOIP) などです。 詳細については、MBIM_CONTEXT_IP_TYPESの表を参照してください。 |
| 二十四 | 4 | 有効にする | MBIM_MS_CONTEXT_ENABLE | コンテキストをモデムで使用できるかどうかを指定します。 MbimMsContextDisabled に設定されている場合、コンテキストに一致する OS 接続要求は、ネットワークに通知せずに失敗する必要があります。 詳細については、MBIM_MS_CONTEXT_ENABLEの表を参照してください。 |
| 28 | 4 | ローミング | MBIM_MS_CONTEXT_ROAMING_CONTROL | このコンテキストに対してローミングを許可するかどうかを指定します。 詳細については、MBIM_MS_CONTEXT_ROAMING_CONTROLの表を参照してください。 |
| 32 | 4 | メディアタイプ | MBIM_MS_CONTEXT_MEDIA_TYPE | コンテキストが使用されるメディア トランスポートの種類を指定します。 詳細については、MBIM_MS_CONTEXT_MEDIA_TYPEの表を参照してください。 |
| 36 | 4 | 情報源 | MBIM_MS_CONTEXT_SOURCE | コンテキストの作成ソースを指定します。 詳細については、MBIM_MS_CONTEXT_SOURCEの表を参照してください。 |
| 40 | 4 | AccessStringOffset | OFFSET | データバッファ内のオフセットにより、ネットワークにアクセスするための文字列 AccessString にアクセスします。 GSM ベースのネットワークの場合、これは "data.thephone-company.com" などのアクセス ポイント名 (APN) 文字列になります。 CDMA ベースのネットワークの場合、"#777" などの特殊なダイヤル コードや、"foo@thephone-company.com" などのネットワーク アクセス識別子 (NAI) などです。 このメンバーは、ネットワークが既定の APN を割り当てることを要求するために NULL にすることができます。 注: すべてのネットワークでこの NULL APN 規則がサポートされているわけではないため、無効な APN が原因で接続エラーが発生する可能性があります。 文字列のサイズは 100 文字以下にする必要があります。 |
| 44 | 4 | アクセスストリングサイズ | サイズ(0..200) | AccessString に使用されるサイズ。 |
| 48 | 4 | UserNameOffset | OFFSET | 構造体の先頭から、ユーザー名を認証するための文字列「UserName」までのオフセット(バイト単位)。 このメンバーには NULL を指定できます。 |
| 52 | 4 | UserNameSize | SIZE(0..510) | UserName に使用されるサイズ。 |
| 56 | 4 | パスワードオフセット | OFFSET | 構造体の先頭から計算された、ユーザー名のパスワードを表す文字列 Password へのバイト単位のオフセット。 このメンバーには NULL を指定できます。 |
| 六十 | 4 | パスワードサイズ | SIZE(0..510) | パスワードに使用されるサイズ。 |
| 64 | 4 | 圧縮 | MBIM_COMPRESSION | ヘッダーとデータのデータ接続で使用する圧縮を指定します。 このメンバーは、GSM ベースのデバイスにのみ適用されます。 ホストは、CDMA ベースのデバイスの場合、このメンバーを MBIMCompressionNone に設定します。 詳細については、MBIM_COMPRESSIONの表を参照してください。 |
| 68 | 4 | 認証プロトコル | MBIM_AUTH_PROTOCOL | PDP アクティブ化に使用する認証の種類。 詳細については、MBIM_AUTH_PROTOCOLの表を参照してください。 |
| 72 | 4 | データバッファ | DATABUFFER | AccessString、UserName、および Password を含むデータ バッファー。 |
前の表では、次のデータ構造が使用されています。
MBIM_MS_CONTEXT_ROAMING_CONTROLは、コンテキストごとのローミング ポリシーを指定します。 OS は、ローミング中に特定のコンテキストを有効にできるかどうかを指定できます。 ローミング状態が指定された条件を満たさない場合、モデムは OS 介入なしでコンテキストを自己アクティブ化しないでください。 モデムがパートナーをサポートしていない場合は、すべてのパートナー構成を自宅と同等として扱う必要があります。
| タイプ | 価値 | 説明 |
|---|---|---|
| MbimMsContextRoamingControlHomeOnly | 0 | コンテキストをホーム ネットワークでのみ使用できるかどうかを示します。 |
| MbimMsContextRoamingControlPartnerOnly | 1 | コンテキストがパートナー ローミング ネットワークでのみ使用できるかどうかを示します。 |
| MbimMsContextローミングコントロールNonPartnerOnly | 2 | コンテキストが非パートナー ローミング ネットワークでのみ使用できるかどうかを示します。 |
| MbimMsContextRoamingControlHomeAndPartner | 3 | コンテキストをホーム ネットワークとパートナー ローミング ネットワークで使用できるかどうかを示します。 |
| MbimMsContextRoamingControlHomeAndNonPartner | 4 | コンテキストを自宅およびパートナー以外のローミング ネットワークで使用できるかどうかを示します。 |
| MbimMsContextRoamingControlPartnerAndNonPartner | 5 | パートナーとパートナー以外のローミング ネットワークでコンテキストを使用できるかどうかを示します。 |
| MbimMsContextRoamingControlAllowAll | 6 | 任意のローミング条件でコンテキストを使用できるかどうかを示します。 |
MBIM_MS_CONTEXT_MEDIA_TYPEが追加され、将来のプラットフォームで Wi-Fi オフロードがサポートされる場合に、コンテキストが携帯ネットワークまたは iWLAN に使用されるかどうかを指定できます。 たとえば、コンテキストが携帯ネットワークとして設定されており、モデムが現在 Wi-Fi オフロードされている場合、そのコンテキストを使って接続を開始すべきではありません。
| タイプ | 価値 | 説明 |
|---|---|---|
| MbimMsContextMediaTypeCellularOnly (携帯電話のみ) | 0 | 携帯ネットワーク経由で登録した場合にのみコンテキストを使用できるかどうかを示します。 |
| MbimMsContextMediaTypeWifiOnly | 1 | iWLAN (Wi-Fi オフロード) 経由で登録されている場合にのみコンテキストを使用できるかどうかを示します。 |
| MbimMsContextMediaTypeAll | 2 | 携帯ネットワークまたは Wi-Fi を使用して登録するときにコンテキストの使用を許可するかどうかを示します。 |
MBIM_MS_CONTEXT_ENABLEは、コンテキストが有効か無効かを指定します。
| タイプ | 価値 | 説明 |
|---|---|---|
| MbimMsContextDisabled | 0 | プロビジョニングされたコンテキストが無効になっています。 モデムは、OS およびそれ自体からこのコンテキストでアクティブ化を有効にしないでください。 |
| MbimMsContextEnabled | 1 | プロビジョニングされたコンテキストが有効になっています。 コンテキストは、他の条件が満たされている場合に有効にすることができます。たとえば、ローミングが許可されていない場合は、ローミング中にコンテキストを有効にしないでください。 |
MBIM_MS_CONTEXT_SOURCEが追加され、モデム コンテキストの作成方法を OS に表示できるようになりました。 これにより、出荷時の設定へのリセットなど、さまざまな状況が発生した後に OS が正しく動作するため、さまざまなオペレーターの要件に基づいて、何を永続化し、何を既定の状態に戻す必要があるかを把握できます。
| タイプ | 価値 | 説明 |
|---|---|---|
| MbimMsContextSourceAdmin | 0 | コンテキストは、OS からエンタープライズ IT 管理者によって作成されました。 |
| MbimMsContextSourceUser | 1 | コンテキストは、OS 設定を使用してユーザーによって作成されました。 |
| MbimMsContextSourceOperator | 2 | コンテキストは、OMA-DM またはその他のチャネルを介してオペレーターによって作成されました。 |
| MbimMsContextSourceModem | 3 | コンテキストは、モデム ファームウェアに含まれていた IHV または OEM によって作成されました。 |
| MbimMsContextSourceDevice | 4 | コンテキストは OS APN データベースによって作成されました。 |
MBIM_MS_CONTEXT_OPERATIONSは、OS がモデムのコンテキストを構成するために実行できる操作を指定します。
| タイプ | 価値 | 説明 |
|---|---|---|
| MbimMsContextOperationDefault | 0 | モデム内の既存のコンテキストの追加または置換を含む、既定の操作。 |
| MbimMsContextOperationDelete | 1 | 削除操作では、モデムで既存のコンテキストを削除する必要があります。 |
| MbimMsContextOperationRestoreFactory | 2 | 現在挿入されている SIM のプロバイダー ID のファクトリ事前構成済みコンテキストを復元します。 OS によって置き換えられた、または作成されたすべてのコンテキストを削除して置き換える必要があります。 現在挿入されている SIM プロバイダー ID の既定の構成済み OS コンテキストがない場合は、モデムのプロビジョニングされたコンテキストを削除する必要があります。 |
MBIM 1.0 からの元のMBIM_CONTEXT_TYPESは引き続き有効です。 MBIM 1.0 が定義されてからより多くの種類のコンテキストが導入されたため、Microsoft はコンテキストの種類を追加しています。 次の表では、導入される新しい型を定義します。 IHV と OEM は、独自の目的で OS で認識できない他の一意の UUID 値を持つ他の独自のコンテキスト型を定義できます。
| タイプ | 価値 | 説明 |
|---|---|---|
| MBIMMsContextTypeAdmin | 5f7e4c2e-e80b-40a9-a239-f0abcfd11f4b | コンテキストは、デバイス管理などの管理目的で使用されます。 |
| MBIMMSContextTypeApp | 74d88a3d-dfbd-4799-9a8c-7310a37bb2ee | コンテキストは、携帯電話会社によって許可リストに登録されている特定のアプリケーションに使用されます。 |
| MBIMMsContextTypeXcap | 50d378a7-baa5-4a50-b872-3fe5bb463411 | コンテキストは、IMS サービスでの XCAP プロビジョニングに使用されます。 |
| MBIMMsContextTypeTethering | 5e4e0601-48dc-4e2b-acb8-08b4016bbaac | コンテキストは、モバイル ホットスポット テザリングに使用されます。 |
| MBIMMsContextTypeEmergencyCalling | 5f41adb8-204e-4d31-9da8-b3c970e360f2 | コンテキストは IMS 緊急呼び出しに使用されます。 |
[応答]
InformationBuffer では、次のMBIM_MS_PROVISIONED_CONTEXT_INFO_V2構造体を使用する必要があります。
| オフセット | サイズ | フィールド | タイプ | 説明 |
|---|---|---|---|---|
| 0 | 4 | 要素数 (ElementCount, EC) | UINT32 | DataBuffer に続くMBIM_MS_CONTEXT_V2構造体の数。 |
| 4 | 8 * EC | MsProvisionedContextV2RefList (プロビジョン済コンテキストV2参照リスト) | OL_PAIR_LIST | ペアの第一要素は、MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2構造体の先頭(オフセット0)からMBIM_MS_CONTEXT_V2構造体までのバイト単位で計算された4バイトのオフセットです(詳細についてはMBIM_MS_CONTEXT_V2表を参照してください)。 ペアの 2 番目の要素は、対応するMBIM_MS_CONTEXT_V2構造体へのポインターの 4 バイト サイズです。 |
| 4 + 8 * EC | データバッファ | DATABUFFER | MBIM_MS_CONTEXT_V2構造体の配列。 |
前の表で使用したMBIM_MS_CONTEXT_V2は、特定のコンテキストに関する情報を提供します。
| オフセット | サイズ | フィールド | タイプ | 説明 |
|---|---|---|---|---|
| 0 | 4 | ContextId | UINT32 | このコンテキストの一意の ID。 |
| 4 | 16 | ContextType | MBIM_CONTEXT_TYPES | 表されるコンテキストの種類を指定します。たとえば、インターネット接続、VPN (企業ネットワークへの接続)、Voice-over-IP (VOIP) などです。 デバイスでは、空またはプロビジョニングされていないコンテキストに MBIMContextTypeNone を指定する必要があります。 詳細については、MBIM_CONTEXT_TYPESの表を参照してください。 |
| 20 | 4 | IPタイプ | MBIM_CONTEXT_IP_TYPES | 詳細については、MBIM_CONTEXT_IP_TYPESの表を参照してください。 |
| 二十四 | 4 | 有効にする | MBIM_MS_CONTEXT_ENABLE | コンテキストをモデムで使用できるかどうかを指定します。 MbimMsContextDisabled に設定されている場合、コンテキストに一致する OS 接続要求は、ネットワークに通知せずに失敗する必要があります。 詳細については、MBIM_MS_CONTEXT_ENABLEの表を参照してください。 |
| 28 | 4 | ローミング | MBIM_MS_CONTEXT_ROAMING_CONTROL | このコンテキストに対してローミングを許可するかどうかを指定します。 詳細については、MBIM_MS_CONTEXT_ROAMING_CONTROLの表を参照してください。 |
| 32 | 4 | メディアタイプ | MBIM_MS_CONTEXT_MEDIA_TYPE | コンテキストが使用されるメディア トランスポートの種類を指定します。 詳細については、MBIM_MS_CONTEXT_MEDIA_TYPEの表を参照してください。 |
| 36 | 4 | 情報源 | MBIM_MS_CONTEXT_SOURCE | コンテキストの作成ソースを指定します。 詳細については、MBIM_MS_CONTEXT_SOURCEの表を参照してください。 |
| 40 | 4 | AccessStringOffset | OFFSET | ネットワークにアクセスするための文字列 AccessString へのデータ バッファー内のオフセット。 GSM ベースのネットワークの場合、これは "data.thephone-company.com" などのアクセス ポイント名 (APN) 文字列になります。 CDMA ベースのネットワークの場合、"#777" などの特殊なダイヤル コードや、"foo@thephone-company.com" などのネットワーク アクセス識別子 (NAI) などです。 ネットワークに既定の APN を割り当てるよう要求するには、このメンバーを NULL にすることができます。 注: すべてのネットワークでこの NULL APN 規則がサポートされているわけではないため、無効な APN が原因で接続エラーが発生する可能性があります。 文字列のサイズは 100 文字以下にする必要があります。 |
| 44 | 4 | アクセスストリングサイズ | サイズ(0..200) | AccessString に使用されるサイズ。 |
| 48 | 4 | UserNameOffset | OFFSET | 構造体の先頭から、ユーザー名を認証するための文字列「UserName」までのオフセット(バイト単位)。 このメンバーには NULL を指定できます。 |
| 52 | 4 | UserNameSize | SIZE(0..510) | UserName に使用されるサイズ。 |
| 56 | 4 | パスワードオフセット | OFFSET | 構造体の先頭から計算された、ユーザー名のパスワードを表す文字列 Password へのバイト単位のオフセット。 このメンバーには NULL を指定できます。 |
| 六十 | 4 | パスワードサイズ | SIZE(0..510) | パスワードに使用されるサイズ。 |
| 64 | 4 | 圧縮 | MBIM_COMPRESSION | ヘッダーとデータのデータ接続で使用する圧縮を指定します。 このメンバーは、GSM ベースのデバイスにのみ適用されます。 ホストは、CDMA ベースのデバイスの場合、このメンバーを MBIMCompressionNone に設定します。 詳細については、MBIM_COMPRESSIONの表を参照してください。 |
| 68 | 4 | 認証プロトコル | MBIM_AUTH_PROTOCOL | PDP アクティブ化に使用する認証の種類。 詳細については、MBIM_AUTH_PROTOCOLの表を参照してください。 |
| 72 | データバッファ | DATABUFFER | AccessString、UserName、および Password を含むデータ バッファー。 |
通知
詳細については、MBIM_MS_PROVISIONED_CONTEXT_V2の表を参照してください。
状態コード
クエリ操作と設定操作の場合:
| 状態コード | 説明 |
|---|---|
| MBIM_STATUS_READ_失敗 | デバイスがプロビジョニングされたコンテキストを取得できなかったため、操作が失敗しました。 |
| MBIM_STATUS_デバイス非対応 | デバイスが操作をサポートしていないため、操作が失敗しました。 |
Set 操作の場合のみ:
| 状態コード | 説明 |
|---|---|
| MBIM_ステータス_無効なパラメータ | パラメーターが無効なため、操作に失敗しました。 |
| MBIM_STATUS_WRITE_FAILURE | 更新要求が失敗したため、操作は失敗しました。 |
プロビジョニングされたコンテキストを使用したデバイスの初期化
プロビジョニングされたコンテキストを使用した SIM ロックされていない GPRS デバイスの初期化
次の図は、GSM ベースの MB デバイスに最適なユーザー エクスペリエンスを表しています。 開封後すぐに使えるエクスペリエンスでは、ユーザー構成は必要ありません。 登録するネットワークを自動的に選択するようにデバイスが構成されていることを前提としています。 太字のラベルは、OID 識別子またはトランザクション フロー制御を表します。 標準テキストのラベルは、OID 構造体内の重要なフラグを表します。
SIM ロックされていない GSM ベースのデバイスを初期化するには、次の手順を実装します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_READY_INFO クエリ要求をミニポート ドライバーに送信して、デバイスの準備完了状態を識別します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバー は、MB デバイスの状態が WwanReadyStateInitialized であることを MB サービスに示す MB サービスにNDIS_STATUS_WWAN_READY_INFO通知を送信します。
MB サービスは、非同期 (非ブロック) OID_WWAN_REGISTER_STATE クエリ要求をミニポート ドライバーに送信して、デバイスの登録状態を識別します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、デバイスの登録モードが WwanRegistraterModeAutomatic であり、現在の登録状態が WwanRegisterStateSearching であることを示すNDIS_STATUS_WWAN_REGISTER_STATE通知を MB サービスに送信します。
その後、デバイスがネットワーク プロバイダーに登録されると、ミニポート ドライバーは、デバイスの現在の登録状態が WwanRegisterStateHome であることを示す未承諾のNDIS_STATUS_WWAN_REGISTER_STATE通知を MB サービスに送信します。
デバイスはパケット サービスの接続を試みます。 パケット サービスの状態が接続に変わると、ミニポート ドライバーは、パケット サービスがアタッチされ、現在のデータ クラス がWWAN_DATA_CLASS_GPRS されていることを示す未承諾の NDIS_STATUS_WWAN_PACKET_SERVICE通知を MB サービスに送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_HOME_PROVIDER クエリ要求をミニポート ドライバーに送信して、ホーム プロバイダー情報を取得します。 ミニポート ドライバーは、要求を受信した暫定的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、ホーム プロバイダーの詳細を示す MB サービスに NDIS_STATUS_WWAN_HOME_PROVIDER 通知を送信します。
MB サービスは、非同期 (非ブロック) OID_WWAN_PROVISIONED_CONTEXTSクエリ要求をミニポート ドライバーに送信して、プロビジョニングされたコンテキストの一覧を取得します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、 WWAN_CONTEXT 構造体の一覧を含む MB サービスに NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS通知を 送信します。
MB サービスは、パケット データ プロトコル (PDP) コンテキストをアクティブ化するミニポート ドライバーに非同期 (非ブロッキング) OID_WWAN_CONNECT 設定要求を送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、PDP コンテキストがアクティブ化されていることを示す MB サービスに NDIS_STATUS_WWAN_CONTEXT_STATE 通知を送信します。
ミニポート ドライバーは、メディア接続状態が MediaConnectStateConnected であることを示すNDIS_STATUS_LINK_STATE通知を送信します。
プロビジョニングされたコンテキストを使用した CDMA パケット デバイスの初期化
次の図は、CDMA ベースのデバイスに最適なユーザー エクスペリエンスを示しています。 箱から出してすぐに使用できるエクスペリエンスでは、ユーザーの構成は必要ありません。 このシナリオでは、CDMA ベースのアカウントがアクティブ化されていないことを前提としています。 GSM ベースのデバイスとは異なり、CDMA ベースのデバイスは、アクティブ化が完了した後、ネットワークへの登録を自動的に開始します。 太字のラベルは、OID 識別子またはトランザクション フロー制御です。 通常のテキストのラベルは、OID 構造体内の重要なフラグです。
プロビジョニングされたコンテキストを使用して CDMA ベースのパケット デバイスを初期化するには、次の手順を実装します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_READY_INFO をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを確認し、要求された情報を後で通知することを暫定的な確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_FAILUREを送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_SERVICE_ACTIVATION をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを示し、将来的に要求された情報を含む通知を送信する予定であることを暫定的に示す確認応答 (NDIS_STATUS_INDICATION_REQUIRED) で返答します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESSを送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_REGISTER_STATE を送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_REGISTER_STATE を送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_PACKET_SERVICE を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_HOME_PROVIDER をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを仮の確認応答 (NDIS_STATUS_INDICATION_REQUIRED) で示し、後日、要求された情報を含む通知を送信することを約束します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESSを送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PROVISIONED_CONTEXTS をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを一時的に確認 (NDIS_STATUS_INDICATION_REQUIRED) し、今後要求された情報を含む通知を送信することを応答します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESSを送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PROVISIONED_CONTEXTS をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESSを送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_LINK_STATE を送信します。