Bagikan melalui


Status MB Radio

Ikhtisar

Topik ini menjelaskan operasi yang digunakan untuk mengatur dan membaca status daya radio perangkat MB. Status ini dapat dikontrol melalui perangkat lunak (mode pesawat terbang) atau perangkat keras (jika sakelar yang sesuai ada). Topik ini menjelaskan bagaimana status daya radio dikontrol, cara menguji fungsionalitas status daya radio, dan cara menyelidiki masalah status daya radio.

Terminologi

Status Radio Sistem - Status Radio Sistem adalah kondisi sistem secara keseluruhan. Ini adalah indikator yang paling jelas dari status mode pesawat. Status Radio Sistem dikelola oleh Radio Management Service (RmSvc).

Radio Manager - RmSvc melakukan iterasi pada beberapa RadioManager (MediaManagers) dalam sistem, seperti WlanRadioManager, Bluetooth, dan WwanRadioManager. WwanRadioManager(.lib) dioperasikan di RmSvc.dll dan mengelola logika radio sisi wwan. WwanRadioManager menggunakan WWAN Service (WwanSvc) RPC untuk:

  1. Mengkueri dan mengatur radio seluler.
  2. Kontrol alur sebelum dan sesudah mode pesawat terbang.

Radio Instance - Setiap RadioManager dapat menyertakan beberapa instans radio. Misalnya, WwanRadioManager dapat memiliki dua instans radio jika ada dua modem seluler dalam sistem. Setiap instans radio adalah objek abstrak dan harus memetakan ke satu modul radio perangkat keras. Dalam kebanyakan kasus, setiap instans radio berhubungan dengan satu modem seluler.

Layanan dan Driver yang Relevan

RmSvc.dll - Mengelola peristiwa radio di seluruh sistem seperti mode pesawat terbang. Ini juga menampung semua manajer radio, termasuk WwanRadioManager.

WwanSvc.dll - Modem seluler dikelola oleh WwanSvc. Oleh karena itu, perintah (OID/CID) dikeluarkan melalui WwanSvc. Permintaan eksternal dari RmSvc atau komponen lain seperti Antarmuka Pengguna (UI) menggunakan WwanSvc RPC untuk meminta atau mengatur status radio seluler.

MbbCx.sys - Driver mode kernel yang mengelola status daya perangkat terutama antara transisi D0 dan Dx. Pada beberapa penyiapan sistem, perangkat diizinkan untuk beralih ke status Dx dan pulih ke D0 hanya jika diperlukan. MbbCx.sys mengelola logika dan kontrol pemulihan status radio sebelum D0 dan Dx.

Arsitektur/Alur

Kontrol Radio dari WwanSvc ke Perangkat Keras Modem

Diagram Alur memperlihatkan kontrol radio dari WwanSvc ke perangkat keras modem.

SET Radio melalui WwanSvc API

Diagram alur yang mengilustrasikan proses SET Radio melalui WwanSvc API.

Status Radio Awal saat Kedatangan Perangkat

Flowchart yang menggambarkan status radio awal pada saat kedatangan perangkat.

MBIM_CID_RADIO_STATE

Seperti yang terlihat pada diagram di atas, CID yang digunakan pada operasi mode pesawat MBIM_CID_RADIO_STATE. CID ini menetapkan atau mengembalikan informasi tentang keadaan daya radio dari perangkat MB.

Kueri

InformationBuffer pada MBIM_COMMAND_MSG tidak digunakan. MBIM_RADIO_STATE_INFO dikembalikan dalam InformationBuffer dari MBIM_COMMAND_DONE.

Atur

InformationBuffer di MBIM_COMMAND_MSG berisi MBIM_SET_RADIO_STATE. MBIM_RADIO_STATE_INFO dikembalikan di dalam InformationBuffer dari MBIM_COMMAND_DONE.

Kejadian yang Tidak Diminta

Event InformationBuffer berisi struktur MBIM_RADIO_STATE_INFO.

Parameter

Mengeset Kueri Pemberitahuan
Perintah MBIM_SET_RADIO_STATE Kosong N/A
Respons MBIM_RADIO_STATE_INFO MBIM_RADIO_STATE_INFO (Informasi Status Radio MBIM) MBIM_RADIO_STATE_INFO

Struktur Data

Mengeset

Offset Ukuran Ladang Jenis Deskripsi
0 4 RadioState MBIM_RADIO_SWITCH_STATE Mengatur status radio yang dikontrol perangkat lunak. Lihat tabel di bawah ini.

MBIM_RADIO_SWITCH_STATE

Jenis Nilai
MBIMRadioOff 0
MBIMRadioOn 1

Kueri

InformationBuffer akan null dan InformationBufferLength akan nol.

Jawaban

MBIM_RADIO_STATE_INFO

Offset Ukuran Ladang Jenis Deskripsi
0 4 HwRadioState MBIM_RADIO_SWITCH_STATE Keadaan sakelar W_DISABLE. Jika perangkat tidak memiliki sakelar W_DISABLE, fungsi harus mengembalikan MBIMRadioOn pada bidang ini.
4 4 SwRadioState MBIM_RADIO_SWITCH_STATE Status perangkat lunak radio yang dikonfigurasi.

Pemberitahuan

Lihat tabel MBIM_RADIO_STATE_INFO di atas.

Kode Status

CID ini hanya menggunakan Kode Status Generik.

Pengujian

Tes Radio Seluler

Nama Fungsi Deskripsi
CellularRadioWinrtTest::VerifyCellularModemExistence Api assert winrt dapat mengkueri modem seluler dan status radio
CellularRadioWinrtTest::VerifyCellularRadioToggle Assert winrt api dapat beralih status radio pada setiap adaptor wwan
CellularRadioRecoveryTest::VerifyCellularRadioRecoveryToOnAfterAPM Pastikan keadaan radio seluler pulih ke Aktif saat meninggalkan Mode Pesawat
CellularRadioRecoveryTest::VerifyCellularRadioRecoveryToOffAfterAPM Pastikan status radio seluler tetap nonaktif ketika keluar dari Mode Pesawat
CellularRadioRecoveryTest::VerifikasiRadioSelulerMelintasiStartUlangLayanan Memastikan status radio seluler tetap konsisten selama restart WwanSvc
CellularRadioRecoveryTest::VerifyCellularRadioAcrossDevNodePnp Pastikan konsistensi status radio seluler tetap terjaga selama kedatangan/penghapusan perangkat

CellularRadioTest.dll berisi tes ini.

Pengujian Kit Laboratorium Perangkat Keras (HLK)

Lihat langkah-langkah untuk menginstal HLK.

Di HLK Studio sambungkan ke driver modem Seluler perangkat dan jalankan pengujian ini:

  • TestRadioStateSoftware
  • TestRadioStateHardware

Atau Anda dapat menjalankan TestRadioStateHardware dan TestRadioStateSoftware dari daftar tes HLK dengan netsh-mbn dan netsh-mbn-test-installation.

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

Dua file yang menunjukkan hasil pengujian HLK harus dibuat di direktori tempat perintah 'netsh mbn test' dijalankan dari: TestRadioStateSoftware.htm dan TestRadioStateHardware.htm.

Log dapat dikumpulkan dan didekode menggunakan instruksi berikut: MB Collecting Logs.

Menganalisis Log

Kata kunci/regexp yang berguna untuk memfilter jejak

  • OID_WWAN_RADIO_STATE

  • CWwanRadioInstance::OnSysRadioChange

  • Memasuki CUIRadioManager::_SetSysRadio

  • Keluar dari CUIRadioManager::_SetSysRadio

  • CWwanRadioInstance::_SetSoftwareRadioState

  • [WwanRadioManager]

  • PostD0Entry: statusDayaSebelumnya

  • CWwanRadioManager::OnSystemRadioStateChange(.)+sysradiostate

  • RMAPI(.)+OnSystemRadioStateChange

  • RMAPI(.)+OnSystemRadioStateChange

  • Wwan-svc(.)+radio

  • mbbcx(.)+radio

Tips untuk investigasi

  • Identifikasi apakah ini adalah masalah radio global (seluruh sistem) atau lokal (khusus seluler).
  • Membedakan status daya perangkat (D0-Dx) dari status radio. Mereka adalah konsep yang berbeda tetapi sangat berkorelasi.
  • Pastikan penyedia ETW yang diperlukan disertakan dalam log.
  • Persempit area dengan menggunakan skenario . Misalnya:
    • Jika terkait dengan mode pesawat, fokuslah pada RmSvc dan WwanRadioManager.
    • Jika terkait dengan D0<->Dx, hibernasi, atau transisi tidur, fokus pada MBBCx.
    • Jika terkait dengan tampilan UI atau status tidak sinkron, mulailah dengan WwanSvc.

WinRT API

Windows.Devices.Radios

Windows.Devices.Radios dimiliki oleh Layanan Manajemen Radio yang mengelola semua manajer radio dan instans. Untuk sisi WWAN, RadioKind adalah RadioKind::MobileBroadband.

  • GetRadiosAsync( )
  • SetStateAsync( )

Windows.Networking.NetworkOperators

halaman dokumentasi Windows.Networking.NetworkOperators

Satu-satunya utilitas yang berguna di bawah namespace layanan ini untuk manajemen radio adalah MobileBroadbandDeviceInformation.CurrentRadioState.

Lihat Juga

OID_WWAN_RADIO_STATE