次の方法で共有


MBIMEx 2.0 – 5G NSA サポート

MBIM 1.0 の正誤表仕様には、新しいペイロードまたは変更されたペイロードで既存の CID を変更するメカニズムがないため、Windows 10 バージョン 1903 では、インターフェイスを拡張して 5G をサポートできるように MBIM 1.0 拡張 2.0 が導入されています。

バージョン管理スキーム

Note

このセクションでは、MBIMEx バージョンという用語は、MBIM 拡張リリース番号を指します。

ホストは、次の 2 つの方法でデバイスの MBIMEx バージョンを学習します。

  1. MBIM EXTENDED FUNCTIONAL DESCRIPTOR。
  2. オプションの MBM_CID_VERSION メッセージ (デバイスでサポートされており、デバイスがサポートを宣言している場合)。

これら 2 つが異なる場合、デバイスがホストに列挙されている間に、上位のバージョンによって MBIMEx バージョンが決まります。 上位の MBIMEx バージョンは、デバイスの発表された MBIMEx バージョンと呼ばれます。 デバイスの発表された MBIMEx バージョンは、ネイティブ MBIMEx バージョン (デバイスでサポートされる最上位の MBIMEx バージョン) よりも低い場合があります。 デバイスは、ホストの MBIMEx バージョンを、MBIM_CID_VERSION メッセージを介してのみ明示的に学習できます。

どのリリースでも、ホストは必ずデバイス初期化シーケンスの開始時に MBIM_CID_DEVICE_SERVICES を使用して、サポートされているサービスと CID をデバイスについてデバイスにクエリを実行します。

デバイスが MBIM_CID_VERSION をサポートしており、MBIM_CID_DEVICE_SERVICES クエリ応答でそのサポートをアドバタイズする場合、MBIM_CID_VERSION を理解していないホスト、または 2.0 より前のバージョンの MBIMEx を持つホストでは、それは無視されます。 一方、MBIM_CID_VERSION を理解し、ネイティブ MBIMEx バージョン 2.0 以降を持つホストは、ホストのネイティブ MBIMEx バージョンを使用してデバイスに MBIM_CID_VERSION メッセージを送信します。この CID は、MBIM_CID_DEVICE_SERVICES 応答を受信した後にデバイスに送信される最初の CID です。

デバイスが、MBIM_CID_DEVICE_SERVICES クエリに応答した後にホストから受け取る最初の CID が MBIM_CID_VERSION 場合、デバイスはホストの MBIMEx バージョンを認識しています。

デバイスが、MBIM_CID_DEVICE_SERVICES クエリに応答した後にホストから受信した最初の CID が他の CID の場合、デバイスはホストのネイティブ MBIMEx バージョンが 1.0 であると推測します。

Diagram showing OS without MBIM_CID_VERSION support and modem's highest supported MBIMEx version is 3.0.

デバイスは MBIM_CID_VERSION をサポートしていない場合、MBIM_CID_VERSION を使用した MBIM_CID_DEVICE_SERVICES クエリには応答しません。 そのため、ホストは MBIM_CID_VERSION メッセージを送信せず、デバイスのネイティブ MBIMEx バージョンは 1.0 であると推測します。

Diagram showing OS with highest MBIMEx version 3.0 and modem without MBIM_CID_VERSION support.

機能的に上位の MBIMEx バージョンは、すべての下位 MBIMEx バージョンの上位集合になります。 ホストは、発表された MBIMEx バージョンがホストのネイティブ MBIMEx バージョン以下であるすべてのデバイスをサポートします。 デバイスの発表された MBIMEx バージョンがホストのネイティブ MBIMEx バージョンよりも上位の場合、ホストはデバイスをサポートする必要はなく、この状況におけるホストの正確な動作は未定義です。

以前のホストで動作することを意図しているデバイスは、最初に MBIMEx バージョン 1.0 をアドバタイズするか、デバイスが MBIM 拡張記述子で動作することが意図されている MBIMEx バージョンの最下位のホスト MBIMEx バージョンをアドバタイズする必要があります。

ホストが、最初にアドバタイズされたデバイスよりも上位の MBIMEx バージョンで MBIM_CID_VERSION を送信する場合、デバイスは、ホストのネイティブ MBIMEx バージョンとデバイスのネイティブ MBIMEx バージョンのうちの小さいほうに至るまで、MBIM_CID_VERSION 応答で上位の MBIMEx バージョンを示す必要があります。

Diagram illustrating OS with lower MBIMEx version than modem's highest supported version.

Diagram illustrating OS with higher MBIMEx version than modem's highest supported version.

Note

たとえば、デバイスでは MBIMEx バージョン 2.0 がサポートされているものの、MBIMEx 2.0 をサポートしていない前のバージョンの OS で動作することが意図されていないとします。 デバイスは、最初に USB 記述子で MBIMEx バージョン 1.0 をアドバタイズし、オプションの MBIM_CID_VERSION のサポートをアドバタイズします。 Windows 10 バージョン 1803 を実行しているホストに挿入すると、ホストでは MBIM_CID_VERSION が理解されないため、MBIM_CID_VERSION はデバイスに送信されません。 ホストでは、このデバイスの MBIMEx バージョンは 1.0 です。 ホストは、初期化シーケンスで他の CID の送信を続けます。 MBIM_CID_VERSION 以外の CID を受信すると、デバイスはホストが MBIMEx バージョン 1.0 をサポートしていることを認識します。 どちらの側も、MBIMEx バージョン 1.0 に準拠するために続行します。 その後、ネイティブ MBIMEx バージョン 2.0 を使用して Windows 10 バージョン 1903 を実行しているホストに同じデバイスが挿入されると、ホストはデバイスに MBIM_CID_VERSION を送信して、ホストのネイティブ MBIMEx バージョンが 2.0 であることを通知します。 デバイスは、デバイスの発表された MBIMEx バージョン 2.0 に応答して MBIM_CID_VERSION を返送します。 そこから、どちらの側も MBIMEx バージョン 2.0 に準拠するために続行します。

次の表は、3 つの仮想ホストおよび 3 つの仮想デバイスとの互換性マトリックスを示しています。各デバイスにはネイティブ MBIMEx バージョンが記載されています。 デバイスは、最初に USB 記述子で MBIMEx バージョン 1.0 をアドバタイズします。 このマトリックスは、各デバイスが各ホストでどのように動作するかを示しています。

デバイス (下) / ホスト (右) Windows 10 バージョン 1809 以前 (ネイティブ MBIMEx バージョン 1.0) Windows 10 バージョン 1903 以降 (MBIMEx バージョン2.0)
4G デバイス

ネイティブ MBIMEx バージョン 1.0

デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 互換性のあるデバイスとホスト。 既定では、MBIMEx バージョン 1.0 で動作します。 デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 ホストは、MBIMEx 1.0 を使用してデバイスと連携します。
5G NSA デバイス

ネイティブ MBIMEx バージョン 2.0

デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 デバイスは、ホストに MBIMEx 1.0 があることを認識し、MBIMEx 1.0 で続行します。 デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 ホストは、MBIM_CID_VERSION を送信して、ホストが MBIMEx 2.0 をサポートしていることをデバイスに通知します。 デバイスは、MBIMEx 2.0 で応答します。 どちらの側も、MBIMEx 2.0 で続行します。

次の表に、MBIMEx バージョン 2.0 で変更されたすべての既存の CID とその変更されたペイロードを一覧表示します。 これらの CID 内でメンションされていないペイロードと、表でメンションされていない他のすべての CID は、MBIMEx バージョン 1.0 から引き継がれ、変更はありません。

CID Payload
MBIM_CID_REGISTER_STATE MBIM_REGISTRATION_STATE_INFO_V2
MBIM_CID_PACKET_SERVICE MBIM_PACKET_SERVICE_INFO_V2
MBIM_CID_SIGNAL_STATE MBIM_SIGNAL_STATE_INFO_V2

MBIM サービス

[サービス名] UUID UUID 値
Microsoft Basic IP Connectivity Extensions UUID_BASIC_CONNECT_EXTENSIONS 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF

MBIM_CID_VERSION

MBIM Microsoft 拡張 2.0 以降をサポートする MBB ドライバーの場合、MBIM_CID_VERSION はホストとデバイス間で MBIM バージョン情報を交換するための必須コマンドです。 この CID を認識しないドライバーを搭載した市場内デバイスの場合、ホストは下位互換性を想定して提供します。

ホストは、このコマンドがデバイスでサポートされている場合はクエリとしてコマンドを送信します。 クエリには、ホストが現在サポートしている MBIM リリース番号と MBIM 拡張リリース番号が含まれています。

デバイス側では、デバイスがバージョン管理スキームで定義されている規則に基づいて、デバイスの発表された MBIM リリース番号と MBIM 拡張リリース番号を調整し、ホストへの応答で送信します。

このコマンドは、基本的な接続拡張機能サービスで定義されています。

CID コマンド コード UUID
MBIM_CID_VERSION 15 3d01dcc5-fef5-4d05-0d3abef7058e9aaf

パラメーター

操作 Set クエリ 通知
コマンド 適用なし MBIM_VERSION_INFO 適用なし
回答 適用なし MBIM_VERSION_INFO 適用なし

クエリ

ホストのネイティブ MBIM リリース番号と MBIM 拡張リリース番号をデバイスに通知します。 InformationBuffer には、次のMBIM_VERSION_INFO 構造体が含まれています。

オフセット サイズ フィールド タイプ 説明
0 2 bcdMBIMVersion UINT16 BCD の送信者の MBIM リリース番号。ビット 7 から 8 の間に暗黙的な小数点が付きます。 たとえば、0x0100 == 1.00 == 1.0 のようにします。 これはリトルエンディアン定数であるため、バイトは 0x00、そして 0x01 です。
2 2 bcdMBIMExtendedVersion UINT16 BCD の送信者の MBIM 拡張リリース番号。ビット 7 から 8 の間に暗黙的な小数点が付きます。 たとえば、0x0100 == 1.00 == 1.0 のようにします。 これはリトルエンディアン定数であるため、バイトは 0x00、そして 0x01 です。

Set

該当なし。

回答

MBIM_COMMAND_DONE の InformationBuffer には、MBIM_VERSION_INFO 構造体が含まれています。

要求されていないイベント

該当なし。

状態コード

この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。

MBIM_CID_MS_DEVICE_CAPS_V2

この CID は、MBIM 仕様リビジョン 1.0 のセクション 10.5.1 で定義されている MBIM_CID_MS_DEVICE_CAPS 拡張機能である、MB マルチ SIM 操作で定義されているものと同じです。 MBIM 拡張リリース 2.0 では、デバイスで 5G 機能を報告できるようにする新しいデータ クラスが MBIM_DATA_CLASS テーブルに定義されています。 MBIMDataClass5G_NSA は、3GPP TS 37.340 で定義されている 5G 非スタンドアロン (NSA) がデバイスでサポートされていることを示し、MBIMDataClass5G_SA は、3GPP TS 37.340 でも定義されている 5G スタンドアロン (SA) がデバイスでサポートされていることを示します。

デバイスが新しいデータ クラスを両方ともサポートしている場合は、両方のビットを設定する必要があります。

MBIM_DATA_CLASS

マスク
MBIMDataClassNone 0h
MBIMDataClassGPRS 1 時間
MBIMDataClassEDGE 2h
MBIMDataClassUMTS 4 時間
MBIMDataClassHSDPA 8h
MBIMDataClassHSUPA 10h
MBIMDataClassLTE 20h
MBIMDataClass5G_NSA 40h
MBIMDataClass5G_SA 80h
予約されています。 100h-8000h
MBIMDataClass1XRTT 10000h
MBIMDataClass1XEVDO 20000h
MBIMDataClass1XEVDORevA 40000h
MBIMDataClass1XEVDV 80000h
MBIMDataClass3XRTT 100000h
MBIMDataClass1XEVDORevB 200000h
MBIMDataClassUMB 400000h
予約されています。 800000-40000000h
MBIMDataClassCustom 80000000h

MBIM_CID_REGISTER_STATE

このコマンドは、MBIM 仕様リビジョン 1.0 で既に定義されているMBIM_CID_REGISTER_STATE CID の拡張機能です。 この拡張機能は、応答構造体に PreferredDataClasses という名前の新しいメンバーを追加します。

パラメーター

操作 Set クエリ 通知
コマンド MBIM_SET_REGISTRATION_STATE Empty 適用なし
回答 MBIM_REGISTRATION_STATE_INFO_V2 MBIM_REGISTRATION_STATE_INFO_V2 MBIM_REGISTRATION_STATE_INFO_V2

クエリ

InformationBuffer が null で、InformationBufferLength が 0 です。

Set

登録状態を設定します。 情報は、MBIM 仕様リビジョン 1.0 で説明されているものと同じです。

回答

MBIM_COMMAND_DONE の InformationBuffer には、次の MBIM_REGISTRATION_STATE_INFO_V2 構造体が含まれています。 MBIM 仕様リビジョン 1.0 のセクション 10.5.10.6 で定義されている MBIM_REGISTRATION_STATE_INFO 構造体と比較すると、次の構造体には新しい PreferredDataClasses フィールドがあります。 ここに記載されていない限り、MBIM 仕様リビジョン 1.0 の表 10-55 のフィールドの説明がこの構造体に適用されます。

MBIM_REGISTRATION_STATE_INFO_V2

オフセット サイズ フィールド タイプ 説明
0 4 NwError UINT32 ネットワーク固有のエラー。 MBIM 仕様リビジョン 1.0 の表 10-44 には、NwError の原因コードが示されています。
4 4 RegisterState MBIM_REGISTER_STATE MBIM 仕様リビジョン 1.0 の表 10-46 を参照してください。
8 4 RegisterMode MBIM_REGISTER_MODE MBIM 仕様リビジョン 1.0 の表 10-47 を参照してください。
12 4 AvailableDataClass UINT32 デバイスが登録されているセルに対して、登録済みネットワークでサポートされているデータ クラスを表す MBIM_DATA_CLASS の値のビットマップ。

RegisterStateMBIMRegisterStateHomeMBIMRegisterStateRoaming、または MBIMRegisterStatePartner でない場合、この値は MBIMDataClassNone に設定されます。

16 4 CurrentCellularClass MBIM_CELLULAR_CLASS マルチモード関数で使用されている現在の携帯ネットワーク クラスを示します。 詳細については、MBIM 仕様リビジョン 1.0 の表 10-8 を参照してください。

単一モード関数の場合、これは、MBIM_CID_DEVICE_CAPS で報告された携帯ネットワーク クラスと同じです。 マルチモード関数の場合、CDMA から GSM への移行、またはその逆の移行は、更新された CurrentCellularClass で示されます。

20 4 ProviderIdOffset OFFSET この構造体の先頭から計算された、ネットワーク プロバイダー ID を表す ProviderId という数値 (0 から 9) の文字列に対するオフセット (バイト単位)。

GSM ベースのネットワークの場合、この文字列は、3 桁のモバイル国コード (MCC) と 2 桁または 3 桁のモバイル ネットワーク コード (MNC) を連結したものです。 GSM ベースの通信事業者は、複数の MNC を持つ可能性があるため、複数の ProviderId を持っている場合があります。

CDMA ベースのネットワークの場合、この文字列は 5 桁のシステム ID (SID) です。 一般に、CDMA ベースの通信事業者は複数の SID を持っています。 通常、通信事業者は市場ごとに 1 つの SID を持ちます。市場とは、米国の大都市統計圏 (MSA) など、規制によって 1 つの国の中で地理的に通常は分割されたものをいいます。 この情報が使用できない場合、CDMA ベースのデバイスでは MBIM_CDMA_DEFAULT_PROVIDER_ID を指定する必要があります。

クエリ要求を処理し、登録状態が自動登録モードの場合、このメンバーには、デバイスが現在関連付けられているプロバイダー ID が含まれます (該当する場合)。 登録状態が手動登録モードの場合、このメンバーには、(プロバイダーが使用できない場合でも) デバイスの登録が要求されるプロバイダー ID が含まれます。

セット要求を処理し、登録状態が手動モードの場合、これには、デバイスの登録に使用するホストによって選択されたプロバイダー ID が含まれます。 登録状態が自動登録モードの場合、このパラメーターは無視されます。

プロバイダー ID が使用できない場合、CDMA 1xRTT プロバイダーは MBIM_CDMA_DEFAULT_PROVIDER_ID に設定する必要があります。

24 4 ProviderIdSize SIZE(0..12) ProviderId のサイズ (バイト単位)。
28 4 ProviderNameOffset OFFSET この構造体の先頭から計算された、ネットワーク プロバイダーの名前を表す ProviderName という文字列に対するオフセット (バイト単位)。 このメンバーは、最大で MBIM_PROVIDERNAME_LEN 文字に制限されます。

GSM ベースのネットワークの場合、PCCI&N (Preferred Presentation of Country Initials and Mobile Network Name) が 20 文字を超える場合、デバイスではネットワーク名を省略する必要があります。

ホストで優先プロバイダー リストを設定する場合、このメンバーは無視されます。 デバイスでは、この情報を持たないデバイスに対して NULL 文字列を指定する必要があります。

32 4 ProviderNameSize SIZE(0..40) ProviderName のサイズ (バイト単位)。
36 4 RoamingTextOffset OFFSET デバイスがローミング中であることをユーザーに通知するために、この構造体の先頭から計算された、RoamingText という文字列に対するオフセット (バイト単位)。 このメンバーは、最大 63 文字に制限されます。 このテキストは、登録状態が MBIMRegisterStatePartner または MBIMRegisterStateRoaming である場合に、ユーザーに追加情報を提供する必要があります。 このメンバーは省略可能です。
40 4 RoamingTextSize SIZE(0..126) RoamingText のサイズ (バイト単位)。
44 4 RegistrationFlag MBIM_REGISTRATION_FLAGS MBIM 仕様リビジョン 1.0 の表 10-48 に従って設定されたフラグ。
48 4 PreferredDataClass UINT32 デバイスで有効なデータ クラスを表す MBIM_DATA_CLASS の値のビットマップ。 デバイスは、有効になっているデータ クラスのみを使用して動作できます。
動的 4 DataBuffer DATABUFFER ProviderIdProviderNameRoamingText を含むデータ バッファー。

要求されていないイベント

通知には、MBIM_REGISTRATION_STATE_INFO_V2 構造体が含まれています。

状態コード

この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。

MBIM_CID_PACKET_SERVICE

このコマンドは、MBIM 仕様リビジョン 1.0 で定義されている既存の MBIM_CID_PACKET_SERVICE の拡張機能です。

この拡張機能は、応答構造体の FrequencyRange という新しいメンバーを追加し、その目的を明確にするために HighestAvailableDataClass メンバーの名前を CurrentDataClass に変更しました。

CurrentDataClass は、デバイスが現在登録されている無線アクセス技術 (RAT) を示します。 MBIM_DATA_CLASS からの 1 つの値が含まれています。

FrequencyRange は、デバイスが現在使用している周波数範囲を示します。 これは、CurrentDataClass フィールドが MBIMDataClass5G_NSA または MBIMDataClass5G_SA ビットが設定されていることを示す場合にのみ有効です。

パラメーター

操作 Set クエリ 通知
コマンド MBIM_SET_PACKET_SERVICE Empty 適用なし
回答 MBIM_PACKET_SERVICE_INFO_V2 MBIM_PACKET_SERVICE_INFO_V2 MBIM_PACKET_SERVICE_INFO_V2

クエリ

InformationBuffer が null で、InformationBufferLength が 0 です。

Set

set コマンドの情報は、MBIM 仕様リビジョン 1.0 で説明されています。

回答

MBIM_COMMAND_DONE の InformationBuffer には、MBIM_PACKET_SERVICE_INFO_V2 構造体が含まれています。 MBIM 仕様リビジョン 1.0 のセクション 10.5.10.6 で定義されている MBIM_PACKET_SERVICE_INFO 構造体と比較すると、この新しい構造体には CurrentDataClass フィールドと FrequencyRange フィールドがあります。 ここに記載されていない限り、MBIM 仕様リビジョン 1.0 の表 10-55 のフィールドの説明がここで適用されます。

MBIM_PACKET_SERVICE_INFO_V2

オフセット サイズ フィールド タイプ 説明
0 4 NwError UINT32 ネットワーク固有のエラー。 MBIM 仕様リビジョン 1.0 の表 10-44 には、NwError の原因コードが示されています。
4 4 PacketServiceState MBIM_PACKET_SERVICE_STATE MBIM 仕様リビジョン 1.0 の表 10-53 を参照してください。
8 4 CurrentDataClass MBIM_DATA_CLASS MBIM_DATA_CLASS に従って指定された、現在のセル内の現在のデータ クラス。 関数がアタッチされたパケット サービス状態にない場合、関数でこのメンバーを MBIMDataClassNone に設定する必要があります。 HSPA (つまり、HSUPA と HSDPA) と 5G DC を除き、この関数で、1 つのMBIM_DATA_CLASS 値にこのメンバーを設定します。 HSPA データ・サービスの場合、関数は、MBIMDataClass HSDPA および MBIMDataClassHSUPA のビットごとの OR を指定します。 HSDPA をサポートしているが HSUPA をサポートしていないセルの場合は、HSDPA のみが示されます (アップリンク データの UMTS データ クラスを示唆します)。 現在のデータ クラスが変更されるたびに、関数は CurrentDataClass の 新しい値を示す通知を送信します。
12 8 UplinkSpeed UINT64 アップリンク ビット レートを 1 秒あたりのビット数で格納します。
20 8 DownlinkSpeed UINT64 ダウンリンク ビット レートを 1 秒あたりのビット数で格納します。
38 4 FrequencyRange MBIM_FREQUENCY_RANGE デバイスが現在使用している周波数範囲を表す MBIM_FREQUENCY_RANGE の値のビットマスク。 これは、CurrentDataClass がMBIMDataClass5G_NSA または MBIMDataClass5G_SA の場合にのみ有効です。

MBIM_FREQUENCY_RANGE

次の列挙は、前のMBIM_PACKET_SERVICE_INFO_V2 構造体の値として使用されます。

Type 説明
MBIMFrequencyRangeUnknown 0 システムの種類が 5G でない場合。
MBIMFrequencyRange1 1 3GPP TS 38.101-1 (サブ 6G) の周波数範囲 1 (FR1)。
MBIMFrequencyRange2 2 3GPP TS 38.101-2 (mmWave) の FR2。
MBIMFrequencyRange1AndRange2 3 FR1 と FR2 の両方の通信事業者が接続されている場合。

要求されていないイベント

通知には、MBIM_PACKET_SERVICE_INFO_V2 構造体が含まれています。

状態コード

この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。

MBIM_CID_SIGNAL_STATE

この CID は MBIM_CID_SIGNAL_STATE の拡張機能であり、信号状態基準として RSRP と SNR を導入しています。 この新しい拡張機能は、デバイスが MBIM 拡張バージョン 2.0 のサポートを示している場合にのみ有効です。 この拡張機能は、モデムが MBIMDataClass5G_(N)SA データ クラスをサポートしている場合は必須です。

RSRP フィールドと SNR フィールドは、対応する SystemType が MGBIMDataClassLTE または MBIMDataClass5G_(N)SA である場合にのみ有効です。 モデムが RSRP や SNR を報告する場合は、RSSI フィールドの値を 99 に設定する必要があります。

対応する SystemType が MBIMDataClass5G_(N)SA の場合、RSRP フィールドは必須であり、SNR フィールドは省略可能です。 対応する SystemType が MBIMDataClassLTE の場合、RSRP フィールドと SNR フィールドは省略可能であり、代わりに RSSI フィールドを使用できます。 この場合、RsrpSnrOffset メンバーと RsrpSnrSize メンバーの両方にゼロ (0) 値を設定すると、RSRP フィールドと SNR フィールドを省略できます。

パラメーター

操作 Set クエリ 通知
コマンド MBIM_SET_SIGNAL_STATE Empty 適用なし
回答 MBIM_SIGNAL_STATE_INFO_V2 MBIM_SIGNAL_STATE_INFO_V2 MBIM_SIGNAL_STATE_INFO_V2

クエリ

InformationBuffer が null で、InformationBufferLength が 0 です。

Set

set コマンドの情報は、MBIM 仕様リビジョン 1.0 で説明されています。

回答

MBIM_COMMAND_DONE の InformationBuffer には、次の MBIM_SIGNAL_STATE_INFO_V2 構造体が含まれています。

MBIM_SIGNAL_STATE_INFO_V2

オフセット サイズ フィールド タイプ 説明
0 4 Rssi UINT32 MBIM 仕様リビジョン 1.0 の表 10.58 を参照してください。
4 4 ErrorRate UINT32 MBIM 仕様リビジョン 1.0 の表 10.58 を参照してください。
8 4 SignalStrengthInterval UINT32 レポートの間隔 (秒)。
12 4 RssiThreshold UINT32 レポートをトリガーする RSSI コード化値の違い。 これが重要でない場合は、0xFFFFFFFF を使用します。
16 4 ErrorRateThreshold UINT32 レポートをトリガーする ErrorRate コード化値の違い。 これが重要でない場合は、0xFFFFFFFF を使用します。
20 4 RsrpSnrOffset OFFSET この構造体の先頭から計算された、RSRP と SNR のシグナル情報を含むバッファーに対するオフセット (バイト単位)。 RSRP と SNR のシグナル情報が使用できない場合、このメンバーを NULL にすることができます。
24 4 RsrpSnrSize SIZE MBIM_RSRP_SNR_INFO 構造体の形式で RSRP と SNR のシグナル情報を含むバッファーのサイズ (バイト単位)。
4 DataBuffer DATABUFFER MBIM_RSRP_SNR 構造体。

MBIM_RSRP_SNR

次の MBIM_RSRP_SNR 構造体は、MBIM_SIGNAL_STATE_INFO_V2 構造体の DataBuffer で使用されます。

オフセット サイズ フィールド タイプ 説明
0 4 ElementCount UINT32 この要素の後に続く RSRP_SNR エントリの数。
4 4 DataBuffer DATABUFFER MBIM_RSRP_SNR_INFO 構造体としてそれぞれ指定される RSRP_SNR レコードの配列。

MBIM_RSRP_SNR_INFO

次の MBIM_RSRP_SNR_INFO 構造体の配列は、MBIM_RSRP_SNR 構造体の DataBuffer で使用されます。

オフセット サイズ> フィールド タイプ 説明
0 4 RSRP UINT32
RSRP 値 (dBm 単位) コード化値 (最小 = 0、最大 = 126)
-156 未満 0
-155 未満 1
... ...
-138 未満 18
... ...
-45 未満 111
... ...
-31 未満 125
-31 以上 126
不明または検出できない 127
4 4 SNR UINT32
SNR 値 (dB 単位) コード化値 (最小 = 0、最大 = 127)
-23 未満 0
-22.5 未満 1
-22 未満 2
-21.5 未満 3
... ...
39.5 未満 125
40 未満 126
40 以上 127
不明または検出できない 128
8 4 RSRPThreshold UINT32 古い (キャッシュされた) RSRP 値と新たに計算された RSRP 値の間のしきい値を定義します。 絶対差がしきい値より大きい場合、デバイスは要求されていないイベントをトリガーします。 ユニットは 1 dBm です。 0 に設定した場合は、デバイス関数の既定の動作を使用します。 0xFFFFFFFF に設定されている場合は、これを使用してイベントをトリガーしないでください。 指定されたしきい値がデバイスでサポートされていない場合は、サポートされている最大しきい値が返されます。
12 4 SNRThreshold UINT32 古い (キャッシュされた) SNR 値と新たに計算された SNR 値の間のしきい値を定義します。 絶対差がしきい値より大きい場合、デバイスは要求されていないイベントをトリガーします。 ユニットは 1 dB です。 0 に設定した場合は、デバイス関数の既定の動作を使用します。 0xFFFFFFFF に設定されている場合は、これを使用してイベントをトリガーしないでください。 指定されたしきい値がデバイスでサポートされていない場合は、サポートされている最大しきい値が返されます。
16 4 SystemType MBIM_DATA_CLASS シグナル状態情報が有効なシステムの種類を示します。 このメンバーは、MBIM_DATA_CLASS で定義されている 1 つの型のビットマスクです。

要求されていないイベント

通知には、MBIM_SIGNAL_STATE_INFO_V2 構造体が含まれています。

状態コード

この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。

LTE 信号バーの計算

Diagram illustrating the process of LTE signal bar calculation.

OS は、信号強度計算のレジストリ設定を次の順序で処理します。

データクラスが CDMA (またはそのバリアント) または TDSCDMA である

  1. レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  2. それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  3. それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。

データクラスが GSM または WCDMA である

  1. GSM または WCDMA のテクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  2. それ以外に、GSM または WCDMA のテクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  3. それ以外に、レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  4. それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  5. それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。
    1. RSSI >= 17; 5 bars
    2. RSSI >= 12; 4 bars
    3. RSSI >= 7; 3 bars
    4. RSSI >= 4; 2 bars
    5. RSSI >= 2; 1 bars
    6. else; 0 bars

データクラスが LTE で、RSRP がモデムによって報告される

  1. RSRP の LTE テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  2. それ以外に、RSRP の LTE テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  3. それ以外の場合は、コードの既定のLTE RSRP 信号バー マッピング テーブルを使用します。

Note

EnableLTESnrReporting が有効になっていても、モデムによる LTE または SNR のレポート用の SNR テーブルがない場合は、RSRP のみが使用されます。 それ以外の場合は、RSRP または SNR のうち最適なほうが信号バーに変換されます。

データクラスが LTE で、RSSI がモデムによって報告される

  1. LTE テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  2. それ以外に、LTE テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  3. それ以外に、レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  4. それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  5. それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。

データクラスは NR です

  1. RSRP の NR テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
  2. それ以外に、RSRP の NR テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
  3. それ以外の場合は、コードの既定の NR RSPR 信号バー マッピング テーブルを使用します。

Note

EnableNRSnrReporting が有効になっていても、モデムによる NR または SNR のレポート用の SRP テーブルがない場合は、RSRP のみが使用されます。 それ以外の場合は、RSRP または SNR のうち最適なほうが信号バーに変換されます。

データクラスは NSA です

  1. EnableLTEReportingOnNSA が設定されていないか、0 に設定されている場合:
    1. データクラス NR フローに従います。
  2. EnableLTEReportingOnNSA が 1 に設定されている場合:
    1. データクラス LTE フロー (RSRP または RSSI) に従います。
  3. EnableLTEReportingOnNSA が 2 に設定されている場合:
    1. FrequencyRange が FR1 の場合は、データクラス LTE フロー (RSRP または RSSI) に従います。
    2. FrequencyRange が <> FR1 の場合は、データクラス NR フローに従います。
  4. EnableLTEReportingOnNSA が 3 に設定されている場合:
    1. FrequencyRange が FR2 の場合は、データクラス LTE フロー (RSRP または RSSI) に従います。
    2. FrequencyRange が <> FR2 の場合は、データクラス NR フローに従います。
  5. EnableLTEReportingOnNSA が 4 に設定されている場合:
    1. LTE フローと NR フローを使用して信号バーを計算します。
    2. 最も強い値を選択します。

Note

1 から 5 で、LTE 信号がモデムで報告されない場合は NR 信号が使用されます。 NR 信号を使用しない場合は、LTE 信号が適用されます。

SignalBar 計算用の COSA カスタマイズ

EnableLTEReportingOnNSA:

0 = "5G 信号を使用する"

1 = "LTE 信号を使用する"

2 = "5G 周波数範囲 1 でキャンプされている場合は LTE 信号を使用する"

3 = "5G 周波数範囲 2 でキャンプされている場合は LTE 信号を使用する"

4 = "LTE と 5G のうち強いほうの信号を使用する"

EnableNRSnrReporting:

0 = "RSRP のみを使用する"

1 = "RSRP と SNR の両方を使用する"

EnableLTESnrReporting:

0 = "RSRP のみを使用する"

1 = "RSRP と SNR の両方を使用する"

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>

表示するバーの数に対応する最小の信号強度値を変更します。 テクノロジ固有の設定が優先されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>

デバイスが GSM にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>

デバイスが WCDMA にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>

デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>

デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>

デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 EnableLTESnrReporting が 1 に設定されている場合に使用されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>

デバイスが 5G にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>

デバイスが 5G にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 EnableNRSnrReporting が 1 に設定されている場合に使用されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。

<SignalBar> には 1 から 5 の値を指定できます。

OEM/MO が RSSI のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。

RSSI 表示されるバー
[0,1] 0
[2,3] 1
[4,6] 2
[7,11] 3
[12,16] 4
[17,31] 5

OEM/MO が RSRP のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。

RSRP 表示されるバー
[0,16] 0
[17,41] 1
[42,51] 2
[52,61] 3
[62,71] 4
[72,126] 5

OEM/MO が SNR のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。

SNR 表示されるバー
[0,18] 0
[19,38] 1
[39,46] 2
[47,53] 3
[54,72] 4
[73,127] 5