Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Mengkueri dan mengatur radio seluler.
- 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
SET Radio melalui WwanSvc API
Status Radio Awal 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:
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.