Stan radia MB
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.
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:
- Wykonywanie zapytań i ustawianie radia komórkowego.
- 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.
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.
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.
Usługa InformationBuffer dla MBIM_COMMAND_MSG nie jest używana. MBIM_RADIO_STATE_INFO jest zwracany w MBIM_COMMAND_DONE InformationBuffer.
InformacjaBuffer w MBIM_COMMAND_MSG zawiera MBIM_SET_RADIO_STATE. MBIM_RADIO_STATE_INFO jest zwracany w buforze informacji MBIM_COMMAND_DONE.
Bufor informacji zdarzenia zawiera strukturę MBIM_RADIO_STATE_INFO.
Zestaw | Zapytanie | Powiadomienie | |
---|---|---|---|
polecenie | MBIM_SET_RADIO_STATE | Pusty | N/A |
odpowiedzi | MBIM_RADIO_STATE_INFO | MBIM_RADIO_STATE_INFO | MBIM_RADIO_STATE_INFO |
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 |
Wartość InformationBuffer będzie null , a InformationBufferLength będzie zero.
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. |
Zobacz tabelę MBIM_RADIO_STATE_INFO powyżej.
Ten identyfikator CID używa tylko ogólnych kodów stanu.
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.
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.
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
- 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.
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( )
strona z dokumentacją Windows.Networking.NetworkOperators
Jedynym przydatnym narzędziem w tej przestrzeni nazw do zarządzania radiem jest MobileBroadbandDeviceInformation.CurrentRadioState.