Estado de radio mb
Introducción
En este tema se describen las operaciones que se usan para establecer y leer los estados de energía de radio de un dispositivo MB. Estos estados se pueden controlar a través de software (modo avión) o hardware (si el conmutador adecuado está presente). En este tema se explica cómo se controlan los estados de energía de radio, cómo probar la funcionalidad de estado de energía de radio y cómo investigar problemas de estado de energía de radio.
Terminología
Estado de radio del sistema- Estado de radio del sistema es un estado de todo el sistema. Es el indicador más evidente del estado del modo avión. Estado de radio del sistema es administrado por el Servicio de Administración de Radio (RmSvc).
Radio Manager - RmSvc itera varios RadioManagers (MediaManagers) en el sistema como WlanRadioManager, BlueTooth y WwanRadioManager. WwanRadioManager(.lib) se hospeda en RmSvc.dll y administra el lado wwan de la lógica de radio. WwanRadioManager usa el RPC del servicio WWAN (WwanSvc) para:
- Consulta y establece radio móvil.
- Controlar el flujo antes y después del modo avión.
Instancia de radio : cada RadioManager puede incluir varias instancias de radio. Por ejemplo, WwanRadioManager puede tener dos instancias de radio si hay dos módems móviles en el sistema. Cada instancia de radio es un objeto abstracto y debe asignarse a un módulo de radio de hardware. En la mayoría de los casos, cada instancia de radio se asigna a un módem de telefonía móvil.
Servicios y controladores pertinentes
RmSvc.dll : administra eventos de radio en todo el sistema, como el modo avión. También alberga todos los administradores de radio, incluyendo WwanRadioManager.
WwanSvc.dll - Los módems móviles son administrados por WwanSvc. Por lo tanto, los comandos (OID/CID) se emiten a través de WwanSvc. Las solicitudes externas de RmSvc u otros componentes (UI) pasan por rpc de WwanSvc para consultar o establecer el estado de radio móvil.
MbbCx.sys : el controlador en modo kernel que administra el estado de energía del dispositivo, especialmente entre D0 y la transición dx. En algunas configuraciones del sistema, el dispositivo puede pasar al estado Dx y recuperarse a D0 solo cuando sea necesario. MbbCx.sys administra la lógica y el control de la recuperación de estado de radio antes de D0 y Dx.
Arquitectura o flujos
Control de radio de WwanSvc al hardware del módem
SET Radio a través de wwanSvc API
Estado de radio inicial a la llegada del dispositivo
MBIM_CID_RADIO_STATE
Como se muestra en los diagramas anteriores, el CID utilizado en las operaciones en modo avión es MBIM_CID_RADIO_STATE. Este CID establece o devuelve información sobre el estado de energía de radio de un dispositivo MB.
Consultar
No se usa InformationBuffer en MBIM_COMMAND_MSG. MBIM_RADIO_STATE_INFO se devuelve en informationBuffer de MBIM_COMMAND_DONE.
Set
InformationBuffer en MBIM_COMMAND_MSG contiene MBIM_SET_RADIO_STATE. MBIM_RADIO_STATE_INFO se devuelve en informationBuffer de MBIM_COMMAND_DONE.
Evento no solicitado
Event InformationBuffer contiene una estructura MBIM_RADIO_STATE_INFO.
Parámetros
Set | Consultar | notificación | |
---|---|---|---|
Comando | MBIM_SET_RADIO_STATE | Vacío | N/D |
Respuesta | MBIM_RADIO_STATE_INFO | MBIM_RADIO_STATE_INFO | MBIM_RADIO_STATE_INFO |
Estructuras de datos
Set
Offset | Size | Campo | Tipo | Descripción |
---|---|---|---|---|
0 | 4 | RadioState | MBIM_RADIO_SWITCH_STATE | Establece el estado de radio controlado por software. Consulte la tabla siguiente. |
MBIM_RADIO_SWITCH_STATE
Tipos | Value |
---|---|
MBIMRadioOff | 0 |
MBIMRadioOn | 1 |
Consultar
InformationBuffer será null y InformationBufferLength será cero.
Response
MBIM_RADIO_STATE_INFO
Offset | Size | Campo | Tipo | Descripción |
---|---|---|---|---|
0 | 4 | HwRadioState | MBIM_RADIO_SWITCH_STATE | Estado del modificador de W_DISABLE. Si el dispositivo no tiene un modificador W_DISABLE, la función debe devolver MBIMRadioOn en este campo. |
4 | 4 | SwRadioState | MBIM_RADIO_SWITCH_STATE | Estado de radio configurado por software. |
notificación
Consulte la tabla MBIM_RADIO_STATE_INFO anterior.
Códigos de estado
Este CID solo usa códigos de estado genéricos.
Prueba
Pruebas de radio celular
Nombre de la función | Descripción |
---|---|
CellularRadioWinrtTest::Verify CellularModemExistence | Assert winrt API puede consultar el módem de telefonía móvil y el estado de radio |
CellularRadioWinrtTest::Verify CellularRadioToggle | Assert winrt API puede alternar el estado de radio en cada adaptador wwan |
CellularRadioRecoveryTest::Verify CellularRadioRecoveryToOnAfterAPM | Los estados de radio de aserción celular se recuperan en Activado al salir del modo avión |
CellularRadioRecoveryTest::Verify CellularRadioRecoveryToOffAfterAPM | Aserción de estados de radio celular permanecen apagados al salir del modo avión |
CellularRadioRecoveryTest::Verify CellularRadioAcrossSvcRestart | Aserción de estados de radio celular permanecen coherentes en el reinicio de WwanSvc |
CellularRadioRecoveryTest::Verify CellularRadioAcrossDevNodePnp | Aserción de estados de radio de telefonía móvil permanecen coherentes entre la llegada o eliminación del dispositivo |
CellularRadioTest.dll contiene estas pruebas.
Pruebas del Kit de laboratorio de hardware (HLK)
Consulte Pasos para instalar HLK.
En HLK Studio, conéctese al controlador del módem de telefonía móvil del dispositivo y ejecute estas pruebas:
Como alternativa, puede ejecutar testRadioStateHardware y TestRadioStateSoftware HLK testlist by netsh-mbn y netsh-mbn-test-installation.
netsh mbn test feature=radio testpath="C:\data\test\bin" taefpath="C:\data\test\bin" param="AccessString=internet"
Los dos archivos que muestran los resultados de la prueba HLK deben haberse generado en el directorio desde el que se ejecutó el comando "netsh mbn test" desde: TestRadioStateSoftware.htm
y TestRadioStateHardware.htm
.
Los registros se pueden recopilar y descodificar mediante estas instrucciones: MB Collecting Logs.
Análisis de registros
Palabras clave/regexp útiles para filtrar seguimientos
OID_WWAN_RADIO_STATE
CWwanRadioInstance::OnSysRadioChange
Escribir CUIRadioManager::_SetSysRadio
Salir de CUIRadioManager::_SetSysRadio
CWwanRadioInstance::_SetSoftwareRadioState
[WwanRadioManager]
PostD0Entry: previousPowerState
CWwanRadioManager::OnSystemRadioStateChange(.) +sysradiostate
RMAPI(.) +OnSystemRadioStateChange
RMAPI(.) +OnSystemRadioStateChange
Wwan-svc(.) +radio
mbbcx(.) +radio
Sugerencias de investigación
- Identifique si se trata de un problema de radio global (en todo el sistema) o local (solo móvil).
- Diferencie el estado de alimentación del dispositivo (D0-Dx) del estado de radio. Son conceptos diferentes, pero altamente correlacionados.
- Asegúrese de que los proveedores ETW necesarios se incluyen en el registro.
- Reduzca el área mediante el escenario . Por ejemplo:
- Si está relacionado con el modo avión, céntrese en RmSvc y WwanRadioManager.
- Si está relacionado con las transiciones D0-Dx<>, hibernación o suspensión, céntrese en MBBCx.
- Si está relacionado con las pantallas de la interfaz de usuario o el estado fuera de sincronización, comience con WwanSvc.
WinRT API
Windows.Devices.Radios
Windows.Devices.Radios es propiedad del Servicio de administración de radios que administra todos los administradores de radio e instancias. Para la WWAN, radioKind es RadioKind::MobileBroadband.
- GetRadiosAsync( )
- SetStateAsync( )
Windows.Networking.NetworkOperators
Página de documentación de Windows.Networking.NetworkOperators
La única utilidad de este espacio de nombres para la administración de radios es MobileBroadbandDeviceInformation.CurrentRadioState.