Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Stan radia MB

Przegląd

W tym temacie opisano operacje używane do ustawiania i odczytywania stanu zasilania radiowego urządzenia MB. Stany te mogą być kontrolowane za pośrednictwem oprogramowania (tryb samolotowy) lub sprzętu (jeśli jest obecny odpowiedni przełącznik). W tym temacie wyjaśniono, jak są kontrolowane stany zasilania radiowego, jak testować funkcje stanu zasilania radiowego oraz jak badać problemy ze stanem zasilania radiowego.

Terminologia

systemowy stan radiowy — systemowy stan radiowy jest stanem całego systemu. Jest to najbardziej widoczny wskaźnik stanu trybu samolotu. System Radio State jest zarządzany przez usługę zarządzania radiem (RmSvc).

Radio Manager - RmSvc iteruje kilku RadioManagerów (MediaManagerów) w systemie, takich jak WlanRadioManager, Bluetooth i WwanRadioManager. WwanRadioManager(.lib) jest hostowany w RmSvc.dll i zarządza funkcjami radiowymi po stronie WWAN. WwanRadioManager używa protokołu RPC usługi WWAN Service (WwanSvc) do:

  1. Wykonywanie zapytań i ustawianie radia komórkowego.
  2. Sterowanie przepływem przed trybem samolotowym i po nim.

instancja radia — każdy RadioManager może zawierać wiele instancji radia. Na przykład WwanRadioManager może mieć dwa wystąpienia radiowe, jeśli w systemie istnieją dwa modemy komórkowe. Każde wystąpienie radiowe jest obiektem abstrakcyjnym i powinno być zmapowane na jeden sprzętowy moduł radiowy. W większości przypadków każda instancja radiowa jest przypisana do jednego modemu komórkowego.

Odpowiednie usługi i sterowniki

RmSvc.dll — zarządza zdarzeniami radiowymi obejmującymi cały system, takimi jak tryb samolotowy. Jest również gospodarzem wszystkich menedżerów radiowych, w tym WwanRadioManager.

WwanSvc.dll — modemy komórkowe są zarządzane przez WwanSvc. W związku z tym polecenia (OID/CID) są wydawane za pośrednictwem WwanSvc. Żądania zewnętrzne z programu RmSvc lub innych składników (UI) przechodzą za pośrednictwem procedury RPC WwanSvc w celu wysyłania zapytań lub ustawiania stanu radia komórkowego.

MbbCx.sys — sterownik trybu jądra, który zarządza stanem zasilania urządzenia, szczególnie między przejściem D0 i Dx. W niektórych konfiguracjach systemu urządzenie może przejść do stanu Dx i odzyskać do D0 tylko wtedy, gdy jest to konieczne. MbbCx.sys zarządza logiką i kontrolą odzyskiwania stanu radiowego przed D0 i Dx.

Architektura/przepływy

Sterowanie radiowe z WwanSvc do sprzętu modemu

schemat blokowy przedstawiający sterowanie radiowe z WwanSvc do sprzętu modemu.

Ustaw radio za pomocą interfejsu WwanSvc API

schemat blokowy ilustrujący proces SET Radio przez API WwanSvc.

Początkowy stan radia po przybyciu urządzenia

schemat blokowy przedstawiający początkowy stan radiowy po nadejściu urządzenia.

MBIM_CID_RADIO_STATE

Jak pokazano na powyższych diagramach, CID używany w operacjach trybu samolotowego to MBIM_CID_RADIO_STATE. Ten identyfikator CID ustawia lub zwraca informacje o stanie zasilania radiowego urządzenia MB.

Zapytanie

Usługa InformationBuffer dla MBIM_COMMAND_MSG nie jest używana. MBIM_RADIO_STATE_INFO jest zwracany w MBIM_COMMAND_DONE InformationBuffer.

Zbiór

InformacjaBuffer w MBIM_COMMAND_MSG zawiera MBIM_SET_RADIO_STATE. MBIM_RADIO_STATE_INFO jest zwracany w buforze informacji MBIM_COMMAND_DONE.

Zdarzenie niezamówione

Bufor informacji zdarzenia zawiera strukturę MBIM_RADIO_STATE_INFO.

Parametry

Zestaw Zapytanie Powiadomienie
polecenie MBIM_SET_RADIO_STATE Pusty N/A
odpowiedzi MBIM_RADIO_STATE_INFO MBIM_RADIO_STATE_INFO MBIM_RADIO_STATE_INFO

Struktury danych

Zbiór

Przesunięcie Rozmiar Pole Typ Opis
0 4 RadioState MBIM_RADIO_SWITCH_STATE Ustawia stan radiowy kontrolowany przez oprogramowanie. Zobacz tabelę poniżej.

MBIM_RADIO_SWITCH_STATE

Typy Wartość
MBIMRadioOff 0
MBIMRadioOn 1

Zapytanie

Wartość InformationBuffer będzie null , a InformationBufferLength będzie zero.

Odpowiedź

MBIM_RADIO_STATE_INFO

Przesunięcie Rozmiar Pole Typ Opis
0 4 HwRadioState Stan przełącznika radiowego MBIM Stan przełącznika W_DISABLE. Jeśli urządzenie nie ma przełącznika W_DISABLE, funkcja musi zwrócić MBIMRadioOn w tym polu.
4 4 SwRadioState Stan przełącznika radiowego MBIM Stan radiowy skonfigurowany przez oprogramowanie.

Powiadomienie

Zobacz tabelę MBIM_RADIO_STATE_INFO powyżej.

Kody stanu

Ten identyfikator CID używa tylko ogólnych kodów stanu.

Testowanie

Testy radiowe sieci komórkowej

Nazwa funkcji Opis
CellularRadioWinrtTest::VerifyCellularModemExistence Sprawdź, czy interfejs API Windows Runtime może sprawdzać stan modemu komórkowego i radia.
CellularRadioWinrtTest::VerifyCellularRadioToggle Asercja API WinRT może przełączać stan radiowy na każdym adapterze WWAN
CellularRadioRecoveryTest::ZweryfikujCellularRadioOdzyskanieDoOnPoAPM Upewnij się, że stany radiowe komórkowe zostają przywrócone do włączonych po wyjściu z trybu samolotowego.
CellularRadioRecoveryTest::ZweryfikujOdzyskiwanieRadiaKomórkowegoDoWyłączeniaPoAPM Upewnij się, że funkcje radiowe sieci komórkowej pozostają wyłączone podczas wyłączania trybu samolotowego.
CellularRadioRecoveryTest::VerifyCellularRadioAcrossSvcRestart Upewnij się, że stany radiowe sieci komórkowej są spójne podczas ponownego uruchamiania WwanSvc.
(Note: Proceed with caution as translating file names or code might not always be the best choice. This depends on the usual conventions within the specific technical field. If translations are needed, they should be consistent with similar terms in the document. If the text is meant to remain technical and commonly known in its original form, it might be best not to alter it.) Potwierdzanie, że stany radiowe sieci komórkowej pozostają spójne między przybyciem/usunięciem urządzenia

CellularRadioTest.dll zawiera te testy.

Testy zestawu Hardware Lab Kit (HLK)

Zobacz Kroki, aby zainstalować HLK.

W programie HLK Studio połącz się z sterownikiem modemu komórkowego urządzenia i uruchom następujące testy:

Alternatywnie, można uruchomić testlistę HLK TestRadioStateHardware i TestRadioStateSoftware za pomocą netsh-mbn oraz netsh-mbn-test-installation.

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

Dwa pliki pokazujące wyniki testu HLK powinny zostać wygenerowane w katalogu, w którym uruchomiono polecenie "netsh mbn test": TestRadioStateSoftware.htm i TestRadioStateHardware.htm.

Dzienniki można zbierać i dekodować, korzystając z poniższych instrukcji: MB zbieranie dzienników.

Analizowanie dzienników

Przydatne słowa kluczowe/regexp do filtrowania śladów

  • OID_WWAN_RADIO_STATE

  • CWwanRadioInstance::OnSysRadioChange

  • Uruchamianie CUIRadioManager::_SetSysRadio

  • Opuszczanie CUIRadioManager::_SetSysRadio

  • CWwanRadioInstance::_SetSoftwareRadioState

  • [WwanRadioManager]

  • PostD0Entry: poprzedniStanZasilania

  • CWwanRadioManager::OnSystemRadioStateChange(.)+sysradiostate

  • RMAPI(.)+OnSystemRadioStateChange

  • RMAPI(.)+OnSystemRadioStateChange

  • Wwan-svc(.)+radio

  • mbbcx(.)+radio

Wskazówki dotyczące badania

  • Określ, czy jest to globalny (systemowy) czy lokalny (tylko komórkowy) problem radiowy.
  • Rozróżnianie stanu zasilania urządzenia (D0-Dx) od stanu radiowego. Są to różne pojęcia, ale wysoce skorelowane.
  • Upewnij się, że w dzienniku znajdują się niezbędne dostawcy ETW.
  • Zawężaj obszar przy użyciu scenariusza. Na przykład:
    • Jeśli jest to związane z trybem samolotowym, skoncentruj się na RmSvc i WwanRadioManager.
    • Jeśli jest to związane z D0<->Dx, przejściami snu lub hibernacją, skoncentruj się na MBBCx.
    • Jeśli jest on powiązany z wyświetlanymi ekranami interfejsu użytkownika lub stanem braku synchronizacji, zacznij od WwanSvc.

WinRT API

Windows.Devices.Radios

Windows.Devices.Radios jest własnością usługi zarządzania radiami, która zarządza wszystkimi radiowymi menedżerami i instancjami. W przypadku WWAN RadioKind jest RadioKind::MobileBroadband.

  • GetRadiosAsync( )
  • SetStateAsync( )

Windows.Networking.NetworkOperators

strona z dokumentacją Windows.Networking.NetworkOperators

Jedynym przydatnym narzędziem w tej przestrzeni nazw do zarządzania radiem jest MobileBroadbandDeviceInformation.CurrentRadioState.

Zobacz też

OID_WWAN_RADIO_STATE