共用方式為


MB 無線電狀態

概觀

本主題描述用來設定和讀取 MB 裝置的無線電電源狀態 () 的作業。 如果適當的交換器) 存在,這些狀態可以透過軟體 (飛機模式) 或硬體 (來控制。 本主題說明如何控制無線電電源狀態、如何測試無線電電源狀態功能,以及如何調查無線電電源狀態問題。

詞彙

系統無線電狀態 - 系統無線電狀態 是全系統的狀態。 這是飛機模式狀態的最明顯指標。 系統無線電狀態是由 Radio Management Service (RmSvc) 管理。

Radio Manager - RmSvc 會逐一查看數個 RadioManagers (MediaManagers) 系統中,例如 WlanRadioManager、BlueTooth 和 WwanRadioManager。 WwanRadioManager (.lib) 裝載于 RmSvc.dll,並管理無線電邏輯的 wwan 端。 WwanRadioManager 使用 WWAN 服務 (WwanSvc) RPC 來:

  1. 查詢並設定行動資料無線電。
  2. 控制飛機模式前後的流程。

單選實例 - 每個 RadioManager 可以包含多個無線電實例。 例如,如果系統中有兩個行動數據機,WwanRadioManager 可以有兩個無線電實例。 每個無線電實例都是抽象物件,應該對應至一個硬體無線電模組。 在大部分情況下,每個無線電實例都會對應至一個行動數據機。

相關服務和驅動程式

RmSvc.dll - 管理全系統無線電事件,例如飛機模式。 它也裝載所有無線電管理員,包括 WwanRadioManager。

WwanSvc.dll - 行動電話數據機是由 WwanSvc 管理。 因此, (OID/CID) 的命令是透過 WwanSvc 發出。 從 RmSvc 或其他元件 (UI 的外部要求) 會透過 WwanSvc RPC 來查詢或設定行動裝置無線電狀態。

MbbCx.sys - 管理裝置電源狀態的核心模式驅動程式,特別是在 D0 和 Dx 轉換之間。 在某些系統設定上,裝置可以轉換為 Dx 狀態,並在需要時才復原至 D0。 MbbCx.sys 管理 D0 和 Dx 之前的無線電狀態復原邏輯和控制。

架構/流程

從 WwanSvc 到數據機硬體的無線電控制

顯示來自 WwanSvc 到數據機硬體之無線電控制的流程圖。

透過 WwanSvc API 設定無線電

透過 WwanSvc API 說明 SET Radio 程式的流程圖。

裝置抵達時的初始無線電狀態

描述裝置抵達時初始無線電狀態的流程圖。

MBIM_CID_RADIO_STATE

如上圖所示,飛機模式作業中使用的 CID MBIM_CID_RADIO_STATE。 此 CID 會設定或傳回 MB 裝置無線電電源狀態的相關資訊。

查詢

不會使用MBIM_COMMAND_MSG上的 InformationBuffer。 MBIM_RADIO_STATE_INFO會在 MBIM_COMMAND_DONE 的 InformationBuffer 中傳回。

集合

MBIM_COMMAND_MSG上的 InformationBuffer 包含MBIM_SET_RADIO_STATE。 MBIM_RADIO_STATE_INFO會在 MBIM_COMMAND_DONE 的 InformationBuffer 中傳回。

未經請求的事件

事件資訊Buffer 包含MBIM_RADIO_STATE_INFO結構。

參數

集合 查詢 通知
命令 MBIM_SET_RADIO_STATE 空白 N/A
回應 MBIM_RADIO_STATE_INFO MBIM_RADIO_STATE_INFO MBIM_RADIO_STATE_INFO

資料結構

集合

Offset 大小 欄位 類型 描述
0 4 RadioState MBIM_RADIO_SWITCH_STATE 設定軟體控制的無線電狀態。 請參閱下表。

MBIM_RADIO_SWITCH_STATE

類型
MBIMRadioOff 0
MBIMRadioOn 1

查詢

InformationBuffer 會是 Null ,InformationBufferLength 會是

回應

MBIM_RADIO_STATE_INFO

Offset 大小 欄位 類型 描述
0 4 HwRadioState MBIM_RADIO_SWITCH_STATE W_DISABLE參數的狀態。 如果裝置沒有W_DISABLE參數,此函式必須在此欄位中傳回 MBIMRadioOn。
4 4 SwRadioState MBIM_RADIO_SWITCH_STATE 軟體設定的無線電狀態。

通知

請參閱上述 MBIM_RADIO_STATE_INFO 表格。

狀態碼

此 CID 只會使用泛型狀態碼。

測試

行動資料無線電測試

函數名稱 描述
CellularRadioWinrtTest::VerifyCellularModemExistence 判斷提示 winrt api 可以查詢行動數據機和無線電狀態
CellularRadioWinrtTest::VerifyCellularRadioToggle 判斷提示 winrt api 可以在每個 wwan 配接器上切換無線電狀態
CellularRadioRecoveryTest::VerifyCellularRadioRecoveryToOnAfterAPM 離開飛機模式時,判斷提示行動無線電狀態會復原到 [開啟]
CellularRadioRecoveryTest::VerifyCellularRadioRecoveryToOffAfterAPM 離開飛機模式時,判斷提示行動無線電狀態會保持關閉
CellularRadioRecoveryTest::VerifyCellularRadioAcrossSvcRestart 判斷提示行動資料無線電狀態在 WwanSvc 重新開機時保持一致
CellularRadioRecoveryTest::VerifyCellularRadioAcrossDevNodePnp 判斷提示行動裝置無線電狀態在裝置抵達/移除之間保持一致

CellularRadioTest.dll 包含這些測試。

硬體實驗室套件 (HLK) 測試

請參閱 安裝 HLK 的步驟

在 HLK Studio 中,連線到行動資料數據機驅動程式並執行下列測試:

或者,您也可以依netsh-mbn 和 netsh-mbn-test-installation執行TestRadioStateHardware 和 TestRadioStateSoftware HLK測試清單。

netsh mbn test feature=radio testpath="C:\data\test\bin" taefpath="C:\data\test\bin" param="AccessString=internet"

顯示 HLK 測試結果的兩個檔案應該已在執行 'netsh mbn test' 命令的目錄中產生: TestRadioStateSoftware.htmTestRadioStateHardware.htm

您可以使用下列指示收集及解碼記錄: MB 收集記錄

分析記錄

篩選追蹤的實用關鍵字/RegExp

  • OID_WWAN_RADIO_STATE

  • CWwanRadioInstance::OnSysRadioChange

  • 輸入 CUIRadioManager::_SetSysRadio

  • 離開 CUIRadioManager::_SetSysRadio

  • CWwanRadioInstance::_SetSoftwareRadioState

  • [WwanRadioManager]

  • PostD0Entry:previousPowerState

  • CWwanRadioManager::OnSystemRadioStateChange (.) +sysradiostate

  • RMAPI (.) +OnSystemRadioStateChange

  • RMAPI (.) +OnSystemRadioStateChange

  • Wwan-svc (.) +radio

  • mbbcx (.) +radio

調查秘訣

  • 識別這是全域 (全系統) 或本機 (僅限行動資料) 無線電問題。
  • 區分裝置電源狀態 (D0-Dx) 與無線電狀態。 它們是不同的概念,但高度相互關聯。
  • 請確定記錄中包含必要的 ETW 提供者。
  • 使用案例縮社區域範圍。 例如:
    • 如果與飛機模式相關,請專注于 RmSvc 和 WwanRadioManager。
    • 如果與 D0-Dx <> 、休眠或睡眠轉換有關,請專注于 MBBCx。
    • 如果 UI 顯示或狀態同步處理相關,請從 WwanSvc 開始。

WinRT API

Windows.Devices.Radios

Windows.Devices.Radios 是由 Radio Management Service 所擁有,可管理所有無線電管理員和實例。 針對 WWAN 端,RadioKind 是 RadioKind::MobileBroadband。

  • GetRadiosAsync ( )
  • SetStateAsync ( )

Windows.Networking.NetworkOperators

Windows.Networking.NetworkOperators 檔頁面

此命名空間下的唯一實用公用程式是 MobileBroadbandDeviceInformation.CurrentRadioState。

另請參閱

OID_WWAN_RADIO_STATE