Compartir a través de


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:

  1. Consulta y establece radio móvil.
  2. 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

Diagrama de flujo que muestra el control de radio de WwanSvc al hardware del módem.

SET Radio a través de wwanSvc API

Diagrama de flujo que ilustra el proceso de radio SET a través de wwanSvc API.

Estado de radio inicial a la llegada del dispositivo

Diagrama de flujo que muestra el 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.

Consulte también

OID_WWAN_RADIO_STATE