MB SAR プラットフォームのサポート
概要
比吸収率 (SAR) は、MBB アンテナとユーザーの距離の近さに反応して、MBB 無線送信機の電力を変える機能です。 従来、OEM は SAR の専用ソリューションを実装してきました。 そのためには、ユーザー モード ドライバー (UMDF) とモデム間でのみ識別されるデバイス サービス コマンドを OEM が実装するか、またはカーネル モード コンポーネントがモデムと直接やり取りする必要があります。 OEM によっては、UMDF モデムとカーネル モードモデムの両方のコンポーネントを持つハイブリッド ソリューションを備えている場合もあります。 無線放射についての認識が高まる中、OEM ソフトウェア コンポーネントのインターフェイスが SAR コマンドをモデムに渡すためのインターフェイスを標準化することで、次のメリットが生まれます。
- OEM はユーザー モード コンポーネントに移行できます。また、ユーザー モードのエラーはカーネル モードと比べるとシステムにとって致命的ではないため、システムの安定性が高まります。
- Windows はプラットフォームの標準インターフェイスを提供し、OEM 独自の実装を減らします。
- SAR を利用する必要のあるプラットフォームのサービスは、モデムから情報を取得できます。
Windows 10 バージョン 1703 以降、Windows では SAR 構成とモデム伝送状態のパススルーがサポートされています。 Windows は今後も、自己差別化要因として使用する SAR のビジネス ロジックは IHV と OEM に任せますが、プラットフォームを合理化するためのインターフェイスは提供します。 このインターフェイスをサポートするために、2 つの新しい NDIS OID と 2 つの新しいMBIM CID が定義されました。 OS のサポートを利用する必要があるデバイスでは、両方のコマンドを実装する必要があります。
この機能は、2 つの新しい OID と CID を追加するとサポートされます。 MBIM を実装する IHV パートナーの場合、サポートを受けるには CID バージョンのみが必要です。
Note
このトピックでは、IHV パートナーがモデム デバイス ドライバーに SAR プラットフォームのサポートを実装するためのインターフェイスを定義します。 デバイスの SAR マッピング テーブルのカスタマイズに関する情報については、「比吸収率 (SAR) マッピング テーブルのカスタマイズ」を参照してください。
フロー
SAR プラットフォーム サポートの MB インターフェイスの更新
MBIM に準拠しているデバイスは、CID_MBIM_DEVICE_SERVICES でクエリが実行されると、次のデバイス サービスを実装して報告します。 既存の既知のサービスは、USB NCM MBIM 1.0 仕様のセクション 10.1 で定義されています。 Microsoft はこれを拡張して、次のサービスを定義します。
サービス名 = Microsoft SAR 制御
UUID = UUID_MS_SARControl
UUID 値 = 68223D04-9F6C-4E0F-822D-28441FB72340
CID | Minimum OS Version |
---|---|
MBIM_CID_MS_SAR_CONFIG | Windows 10 Version 1703 |
MBIM_CID_MS_TRANSMISSION_STATUS | Windows 10 Version 1703 |
MBIM_CID_MS_SAR_CONFIG
説明
このコマンドは、MB デバイスの SAR バックオフ モードとレベルに関する情報を設定または返します。 MB デバイスは、現在の伝送電力の制限を上書きし、伝送アンテナに適用して、SAR バックオフ コマンドに直ちに対応する必要があります。 オペレーティング システムによってアンテナの SAR 構成が変更されていない場合は、現在の設定を維持する必要があります。 たとえば、オペレーティング システムでアンテナ 1 が SAR バックオフ インデックス 1 に設定されている場合、アンテナ 2 の構成は変更せずに同じ構成を維持する必要があります。
このコマンドをサポートするデバイスが Query を実装して、OS とそのクライアントにデバイス情報を提供することが想定されています。 Set コマンドの場合、各フィールドのどの値が許容されるかは、IHV と OEM の間で定義します。 一般的な想定では、SAR バックオフ インデックスは、最少ベースラインとして、すべてのアンテナに対して構成可能です。 Set 要求がデバイスでサポートされていないフィールドと共に送信される場合は、MBIM_STATUS_INVALID_PARAMETERS を状態コードとして返す必要があります。
各 Query または Set の応答の後、モデムは、モバイル ブロードバンドに関連付けられているデバイス上のすべてのアンテナに関する情報を含んだ MBIM_MS_SAR_CONFIG 構造体を返す必要があります。
クエリ
MBIM_COMMAND_MSG の InformationBuffer は使用されません。 MBIM_MS_SAR_CONFIG は、MBIM_COMMAND_DONE の InformationBuffer で返されます。
Set
MBIM_COMMAND_MSG の InformationBuffer には、MBIM_MS_SAR_CONFIG が含まれています。 MBIM_MS_SAR_CONFIG は、MBIM_COMMAND_DONE の InformationBuffer で返されます。
要求されていないイベント
該当なし。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | MBIM_MS_SET_SAR_CONFIG | 適用なし | 適用なし |
回答 | MBIM_MS_SAR_CONFIG | MBIM_MS_SAR_CONFIG | 適用なし |
データ構造
クエリ
InformationBuffer は NULL とし、InformationBufferLength は 0 とします。
Set
InformationBuffer では、次の MBIM_MS_SET_SAR_CONFIG 構造体を使用する必要があります。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | SARMode | MBIM_MS_SAR_CONTROL_MODE | 詳細については、MBIM_MS_SAR_CONTROL_MODE の表を参照してください。 |
4 | 4 | SARBackOffStatus | MBIM_MS_SAR_BACKOFF_STATE | 詳細については、MBIM_MS_SAR_BACKOFF_STATE の表を参照してください。 MBIM_MS_SAR_CONTROL_MODE がデバイス制御に設定されている場合、OS はこのフィールドを設定できません。 |
8 | 4 | ElementCount (EC) | UINT32 | DataBuffer に続く MBIM_MS_SAR_CONFIG 構造体の数。 |
12 | 8 * EC | SARConfigStatusRefList | OL_PAIR_LIST | ペアの最初の要素は、この MBIM_MS_Standard Edition T_SAR_CONFIG 構造体の先頭 (オフセット 0) から計算された、MBIM_MS_SAR_CONFIG_STATE 構造体に対する 4 バイト オフセットです。 詳細については、MBIM_MS_SAR_CONFIG_STATE の表を参照してください。 ペアの 2 番目の要素は、対応する MBIM_MS_SAR_CONFIG_STATE 構造体へのポインターの 4 バイト サイズです。 |
12 + (8 * EC) | DataBuffer | DATABUFFER | MBIM_MS_SAR_CONFIG_STATE 構造体の配列。 |
前の表では、次の構造体が使用されています。
MBIM_MS_SAR_CONTROL_MODE は、SAR バックオフ メカニズムを制御する方法を指定します。
Type | 値 | 説明 |
---|---|---|
MBIMMsSARControlModeDevice | 0 | SAR バックオフ メカニズムは、モデム デバイスによって直接制御されます。 |
MBIMMsSARControlModeOS | 1 | SAR バックオフ メカニズムは、オペレーティング システムによって制御および管理されます。 |
MBIM_MS_SAR_BACKOFF_STATE は、SAR バックオフの状態について説明します。
Type | 値 | 説明 |
---|---|---|
MBIMMsSARBackOffStatusDisabled | 0 | モデムで SAR バックオフが無効になっています。 |
MBIMMsSARBackOffStatusEnabled | 1 | モデムで SAR バックオフが有効になっています。 |
MBIM_MS_SAR_CONFIG_STATE は、アンテナの SAR バックオフで使用可能な状態について説明します。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | SARAntennaIndex | UINT32 | この表の SARBackOffIndex フィールドに対応するアンテナ インデックス。 これはアンテナ番号に対応し、デバイス上の各アンテナのインデックスの作成は OEM の実装に委ねられています。 この値に対しては、任意のインデックスが有効です。 この値が Set コマンドで 0xFFFFFFFF に設定されている場合は、SARBackOffIndex をすべてのアンテナに適用する必要があります。 この値が応答で 0xFFFFFFFF に設定されている場合は、SARBackOffIndex をすべてのアンテナに適用することを示します。 |
4 | 4 | SARBAckOffIndex | UINT32 | OEM またはモデム ベンダーによって定義されているバックオフ テーブルに対応する、バックオフ インデックス。 このテーブルには個々のバンドおよび関連付けられたバックオフ パラメーターが含まれています。 |
回答
InformationBuffer では、次の MBIM_MS_SAR_CONFIG 構造体を使用する必要があります。 MBIM_MS_SAR_CONFIG は、SAR の構成を指定します。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | SARMode | MBIM_MS_SAR_MODE | 詳細については、MBIM_MS_SAR_CONTROL_MODE の表を参照してください。 |
4 | 4 | SARBackOffStatus | MBIM_MS_SAR_BACKOFF_STATE | 詳細については、MBIM_MS_SAR_BACKOFF_STATE の表を参照してください。 |
8 | 4 | SARWifiIntegration | MBIM_MS_SAR_ WIFI_HARDWARE_INTEGRATION | 詳細については、MBIM_MS_SAR_HARDWARE_WIFI_INTEGRATION の表を参照してください。 これは、デバイスの Wi-Fi と携帯ネットワーク SAR がハードウェア層に統合され、デバイスが両方の無線の SAR 制御を自動的に調整することを意味します。 |
12 | 4 | ElementCount (EC) | UINT32 | DataBuffer に続く MBIM_MS_SAR_CONFIG_STATE 構造体の数。 |
16 | 8 * EC | SARConfigStatusRefList | OL_PAIR_LIST | ペアの最初の要素は、この MBIM_MS_Standard Edition T_MBIM_CONFIG 構造体の先頭 (オフセット 0) から計算された、MBIM_MS_SAR_CONFIG 構造体に対する 4 バイト オフセットです。 詳細については、MBIM_MS_SAR_CONFIG_STATE の表を参照してください。 ペアの 2 番目の要素は、対応する MBIM_MS_SAR_CONFIG_STATE 構造体へのポインターの 4 バイト サイズです。 |
16 + (8 * EC) | DataBuffer | DATABUFFER | MBIM_MS_SAR_CONFIG_STATE 構造体の配列。 |
前の表では、次の MBIM_MS_SAR_HARDWARE_WIFI_INTEGRATION 構造体が使用されています。 Wi-Fi と携帯ネットワークをハードウェア レベルで統合するかどうかを指定します。
Type | 値 | 説明 |
---|---|---|
MBIMMsSARWifiHardwareIntegrated | 0 | Wi-Fi と携帯ネットワーク モデムの SAR はデバイスに統合されています。 |
MBIMMsSARWifiHardwareNotIntegrated | 1 | Wi-Fi と携帯ネットワーク モデムの SAR はデバイスに統合されていません。 |
通知
該当なし。
状態コード
エラー コード | 説明 |
---|---|
MBIM_STATUS_SUCCESS | 要求が正常に処理されました。 |
MBIM_STATUS_BUSY | デバイスは現在ビジー状態です。 |
MBIM_STATUS_FAILURE | 要求は失敗しました。 |
MBIM_STATUS_NO_DEVICE_SUPPORT | デバイスは、このコマンドをサポートしていません。 |
MBIM_STATUS_INVALID_PARAMETERS | パラメーターが無効なため、操作は失敗しました。 |
MBIM_STATUS_OPERATION_NOT_ALLOWED | 操作が許可されていないため、操作は失敗しました。 |
MBIM_CID_MS_TRANSMISSION_STATUS
説明
このコマンドは、伝送状態のモデムからの通知を有効または無効にするために使用されます。 各 Executor は異なるチャネル伝送状態を持っている可能性があるため、Executor ごとのコマンドになります。 たとえば、デュアル SIM モデムの場合、1 つは LTE で、もう 1 つは GSM の場合があります。 同時に、モデムの伝送状態を指定するために使用することができます。 この通知は、モデムがデータを伝送しているかどうかに関心があるクライアントに対して使用される場合もあります。 このモデムは、TX トラフィックの開始または終了が発生するたびに通知を提供する必要があります。 デューティ サイクルが小さすぎて、ホストにリアルタイムで提供できない場合、状態の更新を送信する前に、ヒステリシス タイマーを使用して設定された時間にわたって、TX 状態をアクティブに保つことができます。 たとえば、TX のバーストが短く、モデムが開始と終了の通知を時間内に提供できなかった場合などが考えられます。 モデムは、TX トラフィックが開始されたときに通知を送信し、ヒステリシス タイマーの間、TX トラフィックの監視を続ける必要があります。 タイマーの時間枠内でも、それ以上 TX トラフィックが生成されなかった場合は、TX トラフィックが終了したことを報告する必要があります。
これは、Wi-Fi と LTE の両方が接続されているシナリオでは非常に便利です。 LTE と Wi-Fi の両方が伝送状態にあり、近接性が検出されると、Wi-Fi バックオフが必要になることがあります。 LTE は伝送状態ではなく、Wi-Fi が伝送状態である場合は、Wi-Fi バックオフが必要ないことがあります。 これは、一般的な Wi-Fi/LTE 接続とモバイル ホット スポットのシナリオに適用されます。
Wi-Fi バック オフ メカニズムとコマンドは、この仕様の範囲外です。
このコマンドを使用する OEM は、モデムが伝送関連の通知を常に送信する可能性があるため、電源に影響する可能性があることを認識しておく必要があります (電源状態の低下など)。 既定では、電源パフォーマンスを向上させるために、モダン スタンバイ中にこの通知で AP を起動することを OS は許可しません。
クエリ
MBIM_COMMAND_MSG の InformationBuffer は使用されません。 MBIM_MS_TRANSMISSION_STATUS_INFO は、MBIM_COMMAND_DONE の InformationBuffer で返されます。
Set
MBIM_COMMAND_MSG の InformationBuffer には、MBIM_MS_SET_TRANSMISSION_STATUS が含まれています。 MBIM_MS_TRANSMISSION_STATUS_INFO は、MBIM_COMMAND_DONE の InformationBuffer で返されます。
要求されていないイベント
要求されていないイベントは、MBIM_MS_TRANSMISSION_STATUS_INFO を含んでおり、アクティブな無線 (OTA) チャネルに変更がある場合に送信されます。 たとえば、モデムがパケット データのアップロードを開始した場合、ペイロードをアップロードできるように、ネットワーク データ チャネルを使用するときにアップリンク チャネルを設定する必要があります。 これにより、オペレーティング システムに提供される通知がトリガーされます。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | MBIM_MS_SET_TRANSMISSION_STATUS | 適用なし | 適用なし |
回答 | MBIM_MS_TRANSMISSION_STATUS_INFO | MBIM_MS_TRANSMISSION_STATUS_INFO | MBIM_MS_TRANSMISSION_STATUS_INFO |
データ構造
クエリ
MBIM_COMMAND_MSG の InformationBuffer は使用されません。 MBIM_MS_TRANSMISSION_STATUS_INFO は、MBIM_COMMAND_DONE の InformationBuffer で返されます。
Set
InformationBuffer では、次の MBIM_MS_SET_TRANSMISSION_STATUS 構造体を使用する必要があります。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | ChannelNotification | MBIM_MS_TRANSMISSION_STATUS_NOTIFICATION | 詳細については、MBIM_MS_TRANSMISSION_STATUS_NOTIFICATION の表を参照してください。 |
4 | 4 | HysteresisTimer | UINT32 | MBIMMsTransmissionStateInactive をホストに送信するタイミングを決定するために、モデムで使用されるヒステリシス インジケーター。 この値は、モデムが OFF インジケーターをホストに送信する前に、継続的な送信なしアクティビティとモデムが見なすタイマーです。 このタイマーは、1 秒から 5 秒の範囲で秒単位で設定する必要があります。 |
前の表では、次の MBIM_MS_TRANSMISSION_STATUS_NOTIFICATION 構造体が使用されています。 モデム チャネル伝送を無効にするか有効にするかを指定します。
Type | 値 | 説明 |
---|---|---|
MBIMMsTransmissionNotificationDisabled | 0 | モデム チャネル伝送状態の通知が無効になっています。 |
MBIMMsTransmissionNotificationEnabled | 1 | モデム チャネル伝送状態の通知が有効になっています。 |
回答
応答には、次の MBIM_MS_TRANSMISSION_STATUS_INFO 構造体が使用されます。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | ChannelNotification | MBIM_MS_TRANSMISSION_STATUS_NOTIFICATION | 詳細については、MBIM_MS_TRANSMISSION_STATUS_NOTIFICATION の表を参照してください。 |
4 | 4 | TransmissionStatus | MBIM_MS_TRANSMISSION_STATUS | 詳細については、MBIM_MS_TRANSMISSION_STATUS の表を参照してください。 モデムが 5 秒ごとに TX トラフィックを持つかどうかを示します。 |
8 | 4 | HysteresisTimer | UINT32 | MBIMMsTransmissionStateInactive をホストに送信するタイミングを決定するために、モデムで使用されるヒステリシス インジケーター。 この値は、モデムが OFF インジケーターをホストに送信する前に、継続的な送信なしアクティビティとモデムが見なすタイマーです。 このタイマーは、1 秒から 5 秒の範囲で秒単位で設定する必要があります。 |
前の表では、次の MBIM_MS_TRANSMISSION_STATUS 構造体が使用されています。 モデムが 5 秒ごとに TX トラフィックを持っているかどうかを示します。
Type | 値 | 説明 |
---|---|---|
MBIMMsTransmissionStateInactive | 0 | モデムは、最後の HysteresisTimer 値に対して、継続的な伝送経過なく、データをアクティブに伝送していませんでした。 |
MBIMMsTransmissionStateActive | 1 | モデムはデータをアクティブに伝送していました。 |
通知
詳細については、MBIM_MS_TRANSMISSION_STATUS_INFO の表を参照してください。
状態コード
エラー コード | 説明 |
---|---|
MBIM_STATUS_SUCCESS | 要求が正常に処理されました。 |
MBIM_STATUS_BUSY | デバイスは現在ビジー状態です。 |
MBIM_STATUS_FAILURE | 要求は失敗しました。 |
MBIM_STATUS_NO_DEVICE_SUPPORT | デバイスは、このコマンドをサポートしていません。 |
MBIM_STATUS_INVALID_PARAMETERS | パラメーターが無効なため、操作は失敗しました。 |
MBIM_STATUS_OPERATION_NOT_ALLOWED | 操作が許可されていないため、操作は失敗しました。 |
Hardware Lab Kit (HLK) テスト
「HLK のインストール手順」を参照してください。
HLKでは、Studio はデバイスの携帯ネットワーク モデム ドライバーに接続し、テスト (Win6_4.MB.GSM.Data.TestSAR) を実行します。
このテストには、次のテストが含まれています。
テスト名 | 説明 |
---|---|
QuerySarConfig | このテストは、テストが SAR 構成に対するクエリを正常に実行できることを確認します。 |
SetSarConfig | このテストは、テストが SAR 構成を正常に設定できることを確認します。 |
QuerySarTransmissionStatus | このテストは、テストが SAR 伝送状態に対するクエリを正常に実行できることを確認します。 |
SetSarTransmissionStatus | このテストは、テストが SAR 伝送状態を正常に設定できることを確認します。 |
WinRT API
ログ分析
ログの収集とデコードは、MB 収集ログの手順で実行できます。
重要なプロバイダーと対応するキーワード
Microsoft-Windows-WWAN-SVC-EVENTS (3cb40aaa-1145-4fb8-b27b-7e30f0454316)
フィルター処理のキーワード:
- SarConfig
- CWwanSar::OnNdisNotification
- LoadSemiStaticOEMSARTable
- AttemptAutoConfigureSAR
- PreCheckSemiStaticOEMSARTable
- WwanIntfOpcodeSarConfig
- WwanIntfOpcodeSarTransmissionStatus
- WwanMsmEventTypeSarConfig
- WwanMsmEventTypeSarTransmissionStatus
MobileBroadband WinRT WPP (56dd9c57-06cc-48ba-b123-876a6495ba13)
フィルター処理のキーワード: MobileBroadbandSarManager
WwanProtDIM (3a07e1ba-3a6b-49bf-8056-c105b54dd7fb)
フィルター処理のキーワード:
- NDIS_WWAN_SAR_CONFIG_INFO
- SarMode
- NDIS_WWAN_SAR_TRANSMISSION_STATUS_INFO
- HysteresisTimer