MB プロビジョニング済みコンテキスト操作
通信事業者ごとにネットワーク用の 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 はさまざまな種類の APN をモデムに構成できます。
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 | コマンド コード | Minimum OS Version |
---|---|---|
MBIM_CID_MS_PROVISIONED_CONTEXT_V2 | 1 | Windows 10 バージョン 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 ごとに、コンテキストをモデムに格納する独自の方法を用意することができるため、MBIM_CID_PROVISIONED_CONTEXT が示唆する可能性のある方法で、OS が ContextId レベルでプロファイルを管理することは不可能です。 代わりに、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 とは異なる動作を指定します。 Query ごとに、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 に戻った場合のサンプル フローを示しています。
モデムを事前構成した OEM および IHV は、OS またはユーザーがモデムのコンテキスト設定を元の設定に戻す場合に備えて、元の出荷時の構成を残しておく必要があります。 現在挿入されている SIM のプロバイダー ID に関わる元の出荷時コンテキストのみを復元する必要があります。 元の出荷時設定の構成済みコンテキストは、OS の構成で上書きしないでください。 次の図は、ユーザーが出荷時設定の復元を選んだ場合のフローの例です。
SIM が見つからない、ロックされている、またはプロバイダー ID にアクセスできない場合は、モデムが Query 要求または 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 の両方の完全なメッセージから返されます。
Query の場合、InformationBuffer は null です。
Set
Set の場合、InformationBuffer には MBIM_MS_SET_PROVISIONED_CONTEXT_V2 構造体が含まれます。 Set 操作では、各モデム IHV はコンテキスト ストレージを管理する独自の方法を用意することができるため、OS は ContextId フィールドを指定しなくなり、モデムが適切なスロットにコンテキストをマップすることを期待します。 OS でコンテキストを設定している場合、指定されたコンテキストの MBIM_CONTEXT_TYPE に一致するすべての接続でモデムがそれを使用することを、OS は期待します。 MBIM_CONTEXT_TYPE がモデムによって認識されない場合は、モデムと接続できない場合でも保存する必要があります。
要求されていないイベント
Event InformationBuffer には、MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2 構造体が含まれています。 場合により、プロビジョニングされたコンテキストの一覧は、ネットワーの無線 (OTA)、または OS から MBIM_CID_MS_PROVISIONED_CONTEXT_V2 コマンドを経由しないショート メッセージ サービス (SMS) のどちらかによって更新されます。 この関数は、プロビジョニングされたコンテキストの一覧を更新し、適宜 MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceOperatorProvisioned のタグを付ける必要があります。 その後、関数は、更新された一覧とこのイベントを使用して更新についてホストに通知する必要があります。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | 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 は 0 とします。
Set
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 (企業ネットワークへの接続)、ボイス オーバー IP (VOIP) など。 詳細については、MBIM_CONTEXT_TYPES の表を参照してください。 |
20 | 4 | IPType | MBIM_CONTEXT_IP_TYPES | 表されるコンテキストの種類を指定します。インターネット接続、VPN (企業ネットワークへの接続)、ボイス オーバー IP (VOIP) など。 詳細については、MBIM_CONTEXT_IP_TYPES の表を参照してください。 |
24 | 4 | 有効にする | MBIM_MS_CONTEXT_ENABLE | コンテキストをモデムで使用できるかどうかを指定します。 MbimMsContextDisabled に設定されている場合は、コンテキストに一致する OS 接続要求は、ネットワークに通知せずに失敗させる必要があります。 詳細については、MBIM_MS_CONTEXT_ENABLE の表を参照してください。 |
28 | 4 | Roaming | MBIM_MS_CONTEXT_ROAMING_CONTROL | このコンテキストに対してローミングを許可するかどうかを指定します。 詳細については、MBIM_MS_CONTEXT_ROAMING_CONTROL の表を参照してください。 |
32 | 4 | MediaType | 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 | AccessStringSize | SIZE(0..200) | AccessString に使用されるサイズ。 |
48 | 4 | UserNameOffset | OFFSET | この構造体の先頭から計算された、認証するユーザー名を表す文字列 "UserName" へのオフセット (バイト単位)。 このメンバーには NULL を指定できます。 |
52 | 4 | UserNameSize | SIZE(0..510) | UserName に使用されるサイズ。 |
56 | 4 | PasswordOffset | OFFSET | この構造体の先頭から計算された、ユーザー名のパスワードを表す文字列 "Password" へのオフセット (バイト単位)。 このメンバーには NULL を指定できます。 |
60 | 4 | PasswordSize | SIZE(0..510) | パスワードに使用されるサイズ。 |
64 | 4 | Compression | MBIM_COMPRESSION | ヘッダーとデータのデータ接続で使用する圧縮を指定します。 このメンバーは GSM ベースのデバイスにのみ適用されます。 CDMA ベースのデバイスの場合、ホストはこのメンバーを MBIMCompressionNone に設定します。 詳細については、MBIM_COMPRESSION の表を参照してください。 |
68 | 4 | AuthProtocol | MBIM_AUTH_PROTOCOL | PDP アクティブ化に使用する認証タイプ。 詳細については、MBIM_AUTH_PROTOCOL の表を参照してください。 |
72 | 4 | DataBuffer | DATABUFFER | AccessString、UserName、および Password を含むデータ バッファー。 |
前の表では、次のデータ構造が使用されています。
MBIM_MS_CONTEXT_ROAMING_CONTROL はコンテキストごとのローミング ポリシーを指定します。 OS は、ローミング中に指定されたコンテキストを有効にできるかどうかを指定できます。 ローミング状態が指定された条件を満たさない場合、モデムが OS 介入なしでコンテキストを自己アクティブ化しないようにしてください。 モデムがパートナーをサポートしていない場合は、すべてのパートナー構成をホームと同等に扱う必要があります。
Type | 値 | 説明 |
---|---|---|
MbimMsContextRoamingControlHomeOnly | 0 | コンテキストの使用をホーム ネットワークでのみ許可するかどうかを示します。 |
MbimMsContextRoamingControlPartnerOnly | 1 | コンテキストの使用をパートナー ローミング ネットワークでのみ許可するかどうかを示します。 |
MbimMsContextRoamingControlNonPartnerOnly | 2 | コンテキストの使用をパートナー以外のローミング ネットワークでのみ許可するかどうかを示します。 |
MbimMsContextRoamingControlHomeAndPartner | 3 | コンテキストの使用をホーム ネットワークおよびパートナー ローミング ネットワークで許可するかどうかを示します。 |
MbimMsContextRoamingControlHomeAndNonPartner | 4 | コンテキストの使用をホーム ネットワークおよびパートナー以外のローミング ネットワークで許可するかどうかを示します。 |
MbimMsContextRoamingControlPartnerAndNonPartner | 5 | コンテキストの使用をパートナーおよびパートナー以外のローミング ネットワークで許可するかどうかを示します。 |
MbimMsContextRoamingControlAllowAll | 6 | コンテキストの使用を任意のローミング条件で許可するかどうかを示します。 |
Wi-Fi オフロードが将来のプラットフォームでサポートされるようになった場合に、コンテキストを携帯ネットワークまたは iWLAN で使用するかどうかを指定できように、MBIM_MS_CONTEXT_MEDIA_TYPE が追加されました。 たとえば、コンテキストが携帯ネットワークとして設定されていて、モデムで Wi-Fi オフロードが現在有効になっている場合は、そのコンテキストを使用して接続を開始しないでください。
Type | 値 | 説明 |
---|---|---|
MbimMsContextMediaTypeCellularOnly | 0 | コンテキストの使用を携帯ネットワーク経由で登録した場合にのみ許可するかどうかを示します。 |
MbimMsContextMediaTypeWifiOnly | 1 | コンテキストの使用を iWLAN (Wi-Fi オフロード) 経由で登録した場合にのみ許可するかどうかを示します。 |
MbimMsContextMediaTypeAll | 2 | コンテキストの使用を携帯ネットワークまたは Wi-Fi を使用して登録した場合にのみ許可するかどうかを示します。 |
MBIM_MS_CONTEXT_ENABLE はコンテキストが有効か無効かを指定します。
Type | 値 | 説明 |
---|---|---|
MbimMsContextDisabled | 0 | プロビジョニングされたコンテキストが無効になっています。 モデムでは、OS およびそれ自体からのこのコンテキストのアクティブ化を有効にしないでください。 |
MbimMsContextEnabled | 1 | プロビジョニングされたコンテキストが有効になっています。 他の条件が満たされている場合、コンテキストを有効にすることができます。ローミングが許可されていない場合などは、ローミング中にコンテキストを有効にしないでください。 |
モデム コンテキストがどのように作成されたかについて OS が可視化できるように MBIM_MS_CONTEXT_SOURCE が追加されました。 これにより OS は、出荷時の設定へのリセットなど、さまざまな状況が発生した後に正しく動作できるため、さまざまなオペレーター要件に基づいて、何を永続化し、何を既定の状態に戻す必要があるかを把握できます。
Type | 値 | 説明 |
---|---|---|
MbimMsContextSourceAdmin | 0 | コンテキストは、OS からエンタープライズ IT 管理者によって作成されました。 |
MbimMsContextSourceUser | 1 | コンテキストは、OS 設定でユーザーによって作成されました。 |
MbimMsContextSourceOperator | 2 | コンテキストは、OMA-DM または他のチャンネルを通してオペレーターによって作成されました。 |
MbimMsContextSourceModem | 3 | コンテキストは、モデム ファームウェアに含まれていた IHV または OEM によって作成されました。 |
MbimMsContextSourceDevice | 4 | コンテキストは OS APN データベースによって作成されました。 |
MBIM_MS_CONTEXT_OPERATIONS は、OS がモデムのコンテキストを構成するために実行できる操作を指定します。
Type | 値 | 説明 |
---|---|---|
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 値を持つその他の専用コンテキスト型を定義できます。
Type | 値 | 説明 |
---|---|---|
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 | 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 | DATABUFFER | MBIM_MS_CONTEXT_V2 構造体の配列。 |
前の表で使用した MBIM_MS_CONTEXT_V2 は、指定されたコンテキストに関する情報を提供します。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | ContextId | UINT32 | このコンテキストの一意の ID。 |
4 | 16 | ContextType | MBIM_CONTEXT_TYPES | 表されるコンテキストの種類を指定します。インターネット接続、VPN (企業ネットワークへの接続)、ボイス オーバー IP (VOIP) など。 デバイスでは、空またはプロビジョニングされていないコンテキストの MBIMContextTypeNone を指定する必要があります。 詳細については、MBIM_CONTEXT_TYPES の表を参照してください。 |
20 | 4 | IPType | MBIM_CONTEXT_IP_TYPES | 詳細については、MBIM_CONTEXT_IP_TYPES の表を参照してください。 |
24 | 4 | 有効にする | MBIM_MS_CONTEXT_ENABLE | コンテキストをモデムで使用できるかどうかを指定します。 MbimMsContextDisabled に設定されている場合は、コンテキストに一致する OS 接続要求は、ネットワークに通知せずに失敗させる必要があります。 詳細については、MBIM_MS_CONTEXT_ENABLE の表を参照してください。 |
28 | 4 | Roaming | MBIM_MS_CONTEXT_ROAMING_CONTROL | このコンテキストに対してローミングを許可するかどうかを指定します。 詳細については、MBIM_MS_CONTEXT_ROAMING_CONTROL の表を参照してください。 |
32 | 4 | MediaType | 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 | AccessStringSize | SIZE(0..200) | AccessString に使用されるサイズ。 |
48 | 4 | UserNameOffset | OFFSET | この構造体の先頭から計算された、認証するユーザー名を表す文字列 "UserName" へのオフセット (バイト単位)。 このメンバーには NULL を指定できます。 |
52 | 4 | UserNameSize | SIZE(0..510) | UserName に使用されるサイズ。 |
56 | 4 | PasswordOffset | OFFSET | この構造体の先頭から計算された、ユーザー名のパスワードを表す文字列 "Password" へのオフセット (バイト単位)。 このメンバーには NULL を指定できます。 |
60 | 4 | PasswordSize | SIZE(0..510) | パスワードに使用されるサイズ。 |
64 | 4 | Compression | MBIM_COMPRESSION | ヘッダーとデータのデータ接続で使用する圧縮を指定します。 このメンバーは GSM ベースのデバイスにのみ適用されます。 CDMA ベースのデバイスの場合、ホストはこのメンバーを MBIMCompressionNone に設定します。 詳細については、MBIM_COMPRESSION の表を参照してください。 |
68 | 4 | AuthProtocol | MBIM_AUTH_PROTOCOL | PDP アクティブ化に使用する認証タイプ。 詳細については、MBIM_AUTH_PROTOCOL の表を参照してください。 |
72 | DataBuffer | DATABUFFER | AccessString、UserName、および Password を含むデータ バッファー。 |
通知
詳細については、MBIM_MS_PROVISIONED_CONTEXT_V2 の表を参照してください。
状態コード
Query および Set オペレーションの場合:
状態コード | 説明 |
---|---|
MBIM_STATUS_READ_FAILURE | プロビジョニングされたコンテキストをデバイスが取得できなかったため、オペレーションは失敗しました。 |
MBIM_STATUS_NO_DEVICE_SUPPORT | デバイスがオペレーションをサポートしていないため、オペレーションは失敗しました。 |
Set オペレーションのみ:
状態コード | 説明 |
---|---|
MBIM_STATUS_INVALID_PARAMETERS | パラメーターが無効なため、オペレーションは失敗しました。 |
MBIM_STATUS_WRITE_FAILURE | 更新要求が失敗したため、操作は失敗しました。 |
プロビジョニングされたコンテキストを持つデバイスの初期化
プロビジョニングされたコンテキストを持つ、SIM ロックされていない GPRS デバイスの初期化
次の図は、GSM ベースの MB デバイスに最適なユーザー エクスペリエンスを表しています。 このエクスペリエンスはそのまま使えるため、ユーザー構成は必要ありません。 登録先のネットワークを自動的に選択するようにデバイスが構成されていることを前提としています。 太字のラベルは、OID 識別子またはトランザクション フロー制御を表します。 標準テキスト内のラベルは、OID 構造体内の重要フラグを表します。
SIM ロックされていない GSM ベースのデバイスを初期化するには、次の手順を実装します。
MB サービスは、非同期 (非ブロッキング) の OID_WWAN_READY_INFO のクエリ要求をミニポート ドライバーに送信して、デバイスの準備完了状態を識別します。 ミニポート ドライバーは、要求を受信済みであり、今後は要求された情報を含む通知を送信することを、一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB デバイスの状態が WwanReadyStateInitialized であることを MB サービスに示す NDIS_STATUS_WWAN_READY_INFO 通知を MB サービスに送信します。
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) で応答します。
ミニポート ドライバーは、ホーム プロバイダーの詳細を示す NDIS_STATUS_WWAN_HOME_PROVIDER 通知を MB サービスに送信します。
MB サービスは、非同期 (非ブロッキング) の OID_WWAN_PROVISIONED_CONTEXTS のクエリ要求をミニポート ドライバーに送信して、プロビジョニングされたコンテキストの一覧を取得します。 ミニポート ドライバーは、要求を受信済みであり、今後は要求された情報を含む通知を送信することを、一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、WWAN_CONTEXT 構造体の一覧を含む NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS 通知を MB サービスに送信します。
MB サービスは、非同期 (非ブロッキング) の OID_WWAN_CONNECT のセット要求をミニポート ドライバーに送信して、パケット データ プロトコル (PDP) コンテキストをアクティブ化します。 ミニポート ドライバーは、要求を受信済みであり、今後は要求された情報を含む通知を送信することを、一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、PDP コンテキストがアクティブ化されていることを示す NDIS_STATUS_WWAN_CONTEXT_STATE 通知を MB サービスに送信します。
ミニポート ドライバーは NDIS_STATUS_LINK_STATE 通知を送信して、メディア接続状態が MediaConnectStateConnected であることを示します。
プロビジョニング済みコンテキストでの 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 を送信します。