Registrazione modem MB con DSS
Nota
Se si prevede di supportare MBIM_CID_MODEM_LOGGING_CONFIG
il modem, inviare commenti e suggerimenti in questa pagina in modo da poter supportare al meglio. Questo CID è attualmente sperimentale e non è stato ancora testato con un modem, perché nessuno lo supporta.
Questo argomento descrive una nuova interfaccia di registrazione MBB (Windows Mobile Broadband) standard tramite le estensioni Microsoft alla specifica USB MBIM 1.0, disponibile in Windows 10, versione 1903 e successive.
Con questa nuova interfaccia di registrazione, il sistema operativo può informare il dispositivo MBB di avviare, arrestare e scaricare i log nel file system del sistema operativo tramite i comandi CID MBIM. Data la natura non IP del payload di registrazione del modem, il canale dati usato dal servizio MBB per trasmettere i payload di registrazione al sistema operativo usa il flusso del servizio dati MBB . DSS è definito nella specifica MBIM (Mobile Broadband Interface Model) 1.0 .
Il sistema operativo astrae le funzionalità e le configurazioni di diagnostica del modem nell'intero ecosistema MBB con un set di configurazioni di registrazione MBB specifiche di Windows. Queste configurazioni di registrazione MBB consentono al fornitore di un modem di eseguire il mapping dei requisiti di registrazione MBB del sistema operativo alle configurazioni di registrazione interne appropriate. Le configurazioni di registrazione astratte e definite dal sistema operativo includono i livelli di dettaglio di registrazione MBB e il tempo massimo di scaricamento.
Un modem continua a riempire il buffer di registrazione, fino alla dimensione massima del buffer, fino a quando il segmento non viene riempito e il framework MBIM trasmette il segmento al sistema operativo oppure scarica il contenuto del buffer quando viene raggiunto il tempo massimo di scaricamento (anche se il segmento non viene riempito). Il sistema operativo definisce un set di livelli di configurazione di registrazione MBB windows standard, descritti più avanti in questo argomento. Ogni livello di configurazione specifica un'astrazione del sistema operativo di dettagli e dettagli di registrazione MBB.
L'astrazione del sistema operativo dei livelli di configurazione MBB viene mappata alla configurazione interna appropriata tramite modem. Il sistema operativo non fornisce payload di configurazione aggiuntivi, ad esempio filtri di registrazione o maschere, a modem diversi dal livello di configurazione MBB del sistema operativo.
Per i modem che supportano la registrazione MBB, tutti i livelli di configurazione di registrazione MBB ad eccezione di MBIMLoggingLevelOem devono essere presenti in tutte le varianti BSP. In altre parole, l'IHV o l'OEM deve supportare i livelli PROD o LAB di registrazione MBB sia nelle versioni di produzione che di R&D del BSP. I livelli LAB di registrazione MBB possono essere disabilitati solo dal sistema operativo.
Questa nuova progettazione dell'interfaccia di registrazione usa il canale di controllo per impostare i parametri di registrazione e usa il canale dati per ricevere i log modem perché il canale dati è progettato per trasferire i dati del modem in blocco. Il vantaggio di questa progettazione è che i dati in blocco non devono essere trasferiti sul canale di controllo, mantenendo così coerenti le prestazioni del dispositivo. È anche scalabile in modo ottimale per una maggiore velocità effettiva. Il canale dati viene gestito dai comandi DSS. Un flusso di esempio per un modem potrebbe essere simile al seguente:
- Il sistema operativo invia il CID MBIM_CID_MODEM_LOGGING_CONFIG al modem per configurare i parametri di registrazione, ad esempio MaxSegmentSize, MaxFlushTime e LoggingLevel.
- Quando il sistema operativo riceve una risposta corretta dal modem, invia il comando MBIM_CID_DSS_CONNECT DSS al modem con un GUID specifico per la registrazione del modem, lo stato MBIMDssLinkActivate e un ID sessione DSS univoco.
- Dopo aver ricevuto un codice di stato di esito positivo, il sistema operativo si prepara a ricevere frammenti dal modem. Questi frammenti sono denominati pacchetti DataServiceSessionRead.
- I pacchetti DataServiceSessionRead continuano ad arrivare fino a quando il sistema operativo rilascia un altro comando MBIM_CID_DSS_CONNECT con lo stesso ID sessione DSS e uno stato MBIMDSSLinkDeactivate.
Dopo che il modem scrive i log nel canale dati appena creato, il modem chiama MbbDeviceReceiveDeviceServiceSessionData, i dati da cui sono disponibili per le app tramite il livello WinRT : MobileBroadbandDeviceService. I log del modem devono essere formattati come dati stringa stampabili che possono essere reindirizzati a una sessione ETW.
Percorso dati di registrazione modem
La registrazione del modem usa il flusso del servizio dati MBIM (DSS) per trasferire i dati per la registrazione dei payload. Per altre informazioni su DSS, vedere la sezione 10.5.38 della specifica MBIM 1.0.
Quando ci si connette o si disconnette da DSS, viene usato il GUID seguente per la registrazione del modem:
GUID | Valore |
---|---|
ModemFileTransfer GUID | 0EBB1CEB-AF2D-484D-8DF3-53BC51FD162C |
Il diagramma di flusso seguente illustra il processo di installazione e disinstallazione di DSS.
Estensione dell'interfaccia NDIS
L'OID seguente è stato definito in Windows 10, versione 1903, per supportare la registrazione del modem.
Valori del servizio MBIM e del CID
Nome servizio | UUID | Valore UUID |
---|---|---|
Estensioni di Connessione ivity IP di base Microsoft | UUID_BASIC_CONNECT_EXTENSIONS | 3d01dcc5-fef5-4d05-9d3a-bef7058e9aaf |
La tabella seguente specifica l'UUID e il codice di comando per ogni CID, nonché se il CID supporta le richieste Set, Query o Event (notifica). Per altre informazioni sui parametri, sulle strutture dei dati e sulle notifiche, vedere la sezione singola di ogni CID in questo argomento.
CID | UUID | Codice del comando | Set | Query | Notify |
---|---|---|---|---|---|
MBIM_CID_MODEM_LOGGING_CONFIG | UUID_BASIC_CONNECT_EXTENSIONS | Da definire | S | Y | S |
MBIM_CID_MODEM_LOGGING_CONFIG
Questo CID viene usato per configurare i log raccolti dal modem e la frequenza con cui verranno inviati dal modem all'host tramite DSS. La registrazione deve essere configurata prima dell'avvio di una sessione di registrazione. Poiché questo CID fa parte delle estensioni di connessione, è facoltativo per IHV supportare questo CID. Se un IHV supporta la registrazione del modem tramite il canale dati DSS, deve specificarlo come funzionalità. La funzionalità può essere pubblicizzata usando il CID MBIM_BASIC_CID_DEVICE_edizione Standard RVICES.
Parametri
Operazione | Set | Query | Notifica |
---|---|---|---|
Comando | MBIM_MODEM_LOGGING_CONFIG | Non applicabile | Non applicabile |
Response | MBIM_MODEM_LOGGING_CONFIG | MBIM_MODEM_LOGGING_CONFIG | MBIM_MODEM_LOGGING_CONFIG |
Query
Esegue una query sulla configurazione corrente della registrazione del modem. InformationBuffer di MBIM_COMMAND_MSG non viene utilizzato. La struttura di MBIM_MODEM_LOGGING_CONFIG seguente viene utilizzata in InformationBuffer di MBIM_COMMAND_DONE.
MBIM_MODEM_LOGGING_CONFIG
Contropartita | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 4 | Versione | UINT32 | Numero di versione di questa struttura. Questo campo deve essere impostato su 1 per la versione 1 di questa struttura. |
4 | 4 | MaxSegmentSize | UINT32 | Specifica la dimensione del segmento, espressa in kilobyte, per ogni frammento inviato dal modem. Se la dimensione massima del frammento supportata dal modem per Comando del servizio dispositivi supera il valore impostato, questo valore viene impostato sulla dimensione massima supportata del segmento. |
8 | 4 | MaxFlushTime | UINT32 | Tempo, in millisecondi, che indica il tempo massimo di attesa del modem prima di inviare un frammento di log. Se i log raccolti non raggiungono MaxSegmentSize entro la durata di MaxFlushTime dall'ultimo frammento di log inviato, viene inviato un frammento di log indipendentemente dalle dimensioni. Se non sono presenti dati di registrazione, non viene inviata alcuna notifica. Se il dispositivo non è in grado di gestire tempi di scaricamento inferiori, il dispositivo restituisce il tempo che può gestire nella risposta. La risposta a una query o a un set contiene l'oggetto MaxFlushTime attualmente configurato. |
12 | 4 | LevelConfig | MBIM_LOGGING_LEVEL_CONFIG | Configura il livello per cui vengono raccolti i log. La risposta a una query o a un set contiene l'oggetto LevelConfig attualmente configurato. |
Nota
Se il modem non è in grado di fornire i dati di log al sistema operativo in base alla richiesta MaxSegmentSize e MaxFlushTimer, può scegliere i propri valori per questi parametri e aggiornare il sistema operativo come risposta impostata o un evento non richiesto. Il comportamento del sistema operativo non cambia se MaxSegmentSize o MaxFlushTimer cambia, perché riceve i pacchetti di dati indipendentemente dal fatto che vengano scaricati in un file.
Nell'MBIM_MODEM_LOGGING_CONFIG struttura precedente viene utilizzata l'enumerazione MBIM_LOGGING_LEVEL_CONFIG seguente.
Type | Valore | Descrizione |
---|---|---|
MBIMLoggingLevelProd | 0 | Destinato alla raccolta di dati di telemetria da una popolazione di vendita al dettaglio o di produzione. Il log risultante deve essere di dimensioni capsule e contiene solo informazioni relative al modem chiave o allo stato MBB o agli errori. |
MBIMLoggingLevelLabVerbose | 1 | Destinato allo sviluppo di prodotti MBB con bassa maturità. Acquisizione completa dello stack di modem. L'acquisizione del modem risultante deve consentire all'IHV di riprodurre e recuperare completamente l'acquisizione durante il log. |
MBIMLoggingLevelLabMedium | 2 | Destinato alla verifica e al test sul campo dei prodotti MBB con maturità e stabilità relative. Il livello di dettaglio e dettaglio fornisce sufficienti punti dati per i tecnici IHV per valutare la maggior parte degli errori MBB. |
MBIMLoggingLevelLabLow | 3 | Destinato alla registrazione a livello di self-host. Acquisizione a livello di riepilogo dei modem di acquisizione full-stack. Consente di comprendere a livello di evidenziazione lo stato del modem e le interazioni del sistema operativo. |
MBIMLoggingLevelOem | 4 | Riservato per l'utilizzo interno OEM e IHV. |
Set
Viene usato un comando set per configurare il livello, le dimensioni del segmento e il tempo di scaricamento massimo per la registrazione del modem. Una struttura MBIM_MODEM_LOGGING_CONFIG viene utilizzata in InformationBuffer.
Response
InformationBuffer in MBIM_COMMAND_DONE contiene una struttura MBIM_MODEM_LOGGING_CONFIG.
Eventi non richiesti
Gli eventi non richiesti sono supportati per gli scenari in cui il modem deve informare il sistema operativo sulle modifiche interne. Attualmente, in Windows 10 versione 1903, questi scenari non si verificano.
Codici di stato
Questo CID usa solo codici di stato generici definiti nella sezione 9.4.5 della revisione della specifica MBIM 1.0.
Comportamento della sessione DSS durante l'inattività
La tabella seguente descrive il comportamento della sessione DSS durante varie fasi di inattività:
Scenario | Stato sessione DSS |
---|---|
Sospensione del sistema, sospensione solo modem, ripristino e ripristino | Sessione DSS mantenuta aperta |
Arresto del sistema, riavvio, ibernazione | Sessione DSS chiusa |