Freigeben über


MB-Modemprotokollierung mit DSS

Hinweis

Wenn Sie planen, dass Ihr Modem unterstützt MBIM_CID_MODEM_LOGGING_CONFIGwird, geben Sie bitte Feedback auf dieser Seite an, damit wir Sie am besten unterstützen können. Diese CID ist derzeit experimentell und wurde noch nicht mit einem Modem getestet, da sie nicht unterstützt wird.

In diesem Thema wird eine neue Standard-Protokollierungsschnittstelle für Windows Mobile Broadband (MBB) über Microsoft-Erweiterungen zur USB MBIM 1.0-Spezifikation beschrieben, die in Windows 10, Version 1903 und höher verfügbar ist.

Mit dieser neuen Protokollierungsschnittstelle kann das Betriebssystem das MBB-Gerät informieren, um die Protokolle über MBIM CID-Befehle im Betriebssystem zu starten, zu beenden und zu leeren. Angesichts der Nicht-IP-Natur der Protokollierungsnutzlast des Modems verwendet der Datenkanal, den der MBB-Dienst zum Übertragen von Protokollierungsnutzlasten an das Betriebssystem verwendet, verwendet den MBB Data Service Stream (DSS). DSS wird in der Spezifikation "Mobile Broadband Interface Model (MBIM) 1.0" definiert.

Das Betriebssystem abstrahiert die Diagnosefunktionen und -konfigurationen des Modems im gesamten MBB-Ökosystem mit einer Reihe von Windows-spezifischen MBB-Protokollierungskonfigurationen. Diese MBB-Protokollierungskonfigurationen ermöglichen es dem Anbieter eines Modems, die Anforderungen der OS MBB-Protokollierung den entsprechenden internen Protokollierungskonfigurationen zuzuordnen. Zu den vom Betriebssystem abstrahierten und vom Betriebssystem definierten Protokollierungskonfigurationen gehören die Ausführlichkeitsstufen für die MBB-Protokollierung und die maximale Leerlaufzeit.

Ein Modem füllt den Protokollierungspuffer bis zur maximalen Puffergröße, bis das Segment gefüllt ist und das MBIM-Framework das Segment an das Betriebssystem überträgt, oder löscht den Inhalt seines Puffers, wenn die maximale Leerzeit erreicht ist (auch wenn das Segment nicht gefüllt ist). Das Betriebssystem definiert eine Reihe von Standardmäßigen Windows MBB-Protokollierungskonfigurationsebenen, die weiter unten in diesem Thema beschrieben werden. Jede Konfigurationsstufe gibt eine BS-Abstraktion von MBB-Protokollierungsdetails und Ausführlichkeit an.

Die Abstraktion von MBB-Konfigurationsebenen wird der entsprechenden internen Modemkonfiguration durch Modems zugeordnet. Das Betriebssystem stellt keine zusätzlichen Konfigurationsnutzlasten bereit, z. B. Protokollierungsfilter oder Masken, für Modems, die nicht die Betriebssystem-MBB-Konfigurationsstufe sind.

Für Modems, die die MBB-Protokollierung unterstützen, müssen alle MBB-Protokollierungskonfigurationsstufen außer MBIMLoggingLevelOem auf allen BSP-Varianten vorhanden sein. Mit anderen Worten, der IHV oder OEM muss PROD- oder LAB-Ebenen der MBB-Protokollierung sowohl in produktions- als auch in R&D-Versionen des BSP unterstützen. LAB-Ebenen der MBB-Protokollierung können nur vom Betriebssystem deaktiviert werden.

Das Design dieser neuen Protokollierungsschnittstelle verwendet den Steuerkanal zum Festlegen der Protokollierungsparameter und verwendet den Datenkanal zum Empfangen von Modemprotokollen, da der Datenkanal für die Übertragung von Massenmodemdaten konzipiert ist. Der Vorteil dieses Designs besteht darin, dass Massendaten nicht über den Steuerkanal übertragen werden müssen, sodass die Geräteleistung konsistent bleibt. Es skaliert auch gut für einen höheren Durchsatz. Der Datenkanal wird von DSS-Befehlen betrieben. Ein Beispielfluss für ein Modem könnte wie folgt aussehen:

  1. Das Betriebssystem sendet die MBIM_CID_MODEM_LOGGING_CONFIG CID an das Modem, um Protokollierungsparameter wie MaxSegmentSize, MaxFlushTime und LoggingLevel zu konfigurieren.
  2. Sobald das Betriebssystem eine erfolgreiche Antwort vom Modem empfängt, sendet es den MBIM_CID_DSS_CONNECT DSS-Befehl mit einer bestimmten GUID für die Modemprotokollierung, den MBIMDssLinkActivate-Zustand und eine eindeutige DSS-Sitzungs-ID an das Modem.
  3. Sobald er einen Erfolgsstatuscode empfängt, bereitet sich das Betriebssystem darauf vor, Fragmente vom Modem zu empfangen. Diese Fragmente werden als DataServiceSessionRead-Pakete bezeichnet.
  4. DataServiceSessionRead-Pakete werden weiterhin eingetroffen, bis das Betriebssystem einen anderen MBIM_CID_DSS_CONNECT Befehl mit derselben DSS-Sitzungs-ID und einem MBIMDSSLinkDeactivate-Zustand ausgibt.

Sobald das Modem Protokolle in den neu erstellten Datenkanal schreibt, ruft das Modem MbbDeviceReceiveDeviceServiceSessionData auf, die Daten, aus denen Apps über die WinRT-Ebene verfügbar sind: MobileBroadbandDeviceService. Die Modemprotokolle sollten als druckbare Zeichenfolgendaten formatiert werden, die an eine ETW-Sitzung umgeleitet werden können.

Modemprotokollierungsdatenpfad

Die Modemprotokollierung verwendet den MBIM Data Service Stream (DSS), um die Daten für protokollierungsnutzlasten zu übertragen. Weitere Informationen zu DSS finden Sie in Abschnitt 10.5.38 der MBIM 1.0-Spezifikation.

Beim Verbinden oder Trennen von DSS wird die folgende GUID für die Modemprotokollierung verwendet:

GUID Wert
ModemFileTransfer GUID 0EBB1CEB-AF2D-484D-8DF3-53BC51FD162C

Das folgende Flussdiagramm veranschaulicht den DsS-Einrichtungs- und Abrissvorgang.

DsS-Modemprotokollierungssetup und Ablaufdiagramm zum Abreißen.

NDIS-Schnittstellenerweiterung

Das folgende OID wurde in Windows 10, Version 1903, definiert, um die Modemprotokollierung zu unterstützen.

MBIM-Dienst- und CID-Werte

Dienstname UUID UUID-Wert
Microsoft Basic-IP-Verbinden ivitätserweiterungen UUID_BASIC_CONNECT_EXTENSIONS 3d01dcc5-fef5-4d05-9d3a-bef7058e9aaf

Die folgende Tabelle gibt den UUID- und Befehlscode für jede CID sowie an, ob die CID Set-, Query- oder Ereignisanforderungen (Benachrichtigung) unterstützt. Weitere Informationen zu ihren Parametern, Datenstrukturen und Benachrichtigungen finden Sie im einzelnen Abschnitt der einzelnen CID in diesem Thema.

CID UUID Befehlscode Set Abfrage Notify
MBIM_CID_MODEM_LOGGING_CONFIG UUID_BASIC_CONNECT_EXTENSIONS TBD Y Y J

MBIM_CID_MODEM_LOGGING_CONFIG

Diese CID wird verwendet, um die Protokolle zu konfigurieren, die vom Modem erfasst werden und wie oft sie vom Modem an den Host über DSS gesendet werden. Die Protokollierung muss konfiguriert werden, bevor eine Protokollierungssitzung gestartet wird. Da diese CID Teil von Verbindungserweiterungen ist, ist sie für IHVs optional, um diese CID zu unterstützen. Wenn ein IHV die Modemprotokollierung über den DSS-Datenkanal unterstützt, muss dies als Funktion angegeben werden. Die Funktion kann mithilfe der MBIM_BASIC_CID_DEVICE_SERVICES CID angekündigt werden.

Parameter

Vorgang Set Abfrage Benachrichtigung
Get-Help MBIM_MODEM_LOGGING_CONFIG Nicht zutreffend Nicht zutreffend
Antwort MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG

Abfrage

Fragt die aktuelle Modemprotokollierungskonfiguration ab. Der InformationBuffer von MBIM_COMMAND_MSG wird nicht verwendet. Die folgende MBIM_MODEM_LOGGING_CONFIG Struktur wird im InformationBuffer von MBIM_COMMAND_DONE verwendet.

MBIM_MODEM_LOGGING_CONFIG

Abweichung Size Feld Typ Beschreibung
0 4 Version UINT32 Die Versionsnummer dieser Struktur. Dieses Feld muss für Version 1 dieser Struktur auf 1 festgelegt werden.
4 4 MaxSegmentSize UINT32 Gibt die Segmentgröße in Kilobyte für jedes Fragment an, das vom Modem gesendet wird. Wenn die vom Modem für den Gerätedienstbefehl unterstützte maximale Fragmentgröße den Wert überschreitet, wird dieser Wert auf die maximale unterstützte Segmentgröße festgelegt.
8 4 MaxFlushTime UINT32 Die Zeit in Millisekunden, die angibt, wie lange das Modem wartet, bevor ein Protokollfragment gesendet wird. Wenn die gesammelten Protokolle maxSegmentSize nicht innerhalb der MaxFlushTime-Dauer seit dem letzten gesendeten Protokollfragment erreichen, wird ein Protokollfragment unabhängig von seiner Größe gesendet. Wenn keine Protokollierungsdaten vorhanden sind, wird keine Benachrichtigung gesendet. Wenn das Gerät kleinere Leerzeiten nicht verarbeiten kann, gibt das Gerät die Zeit zurück, die es in der Antwort verarbeiten kann. Die Antwort auf eine Abfrage oder einen Satz enthält die aktuell konfigurierte MaxFlushTime.The response to a query or set contains the currently configured MaxFlushTime.
12 4 LevelConfig MBIM_LOGGING_LEVEL_CONFIG Konfiguriert die Ebene, für die Protokolle gesammelt werden. Die Antwort auf eine Abfrage oder einen Satz enthält die aktuell konfigurierte LevelConfig.The response to a query or set contains the currently configure LevelConfig.

Hinweis

Wenn das Modem nicht in der Lage ist, Protokolldaten für das Betriebssystem bei der angeforderten MaxSegmentSize - und MaxFlushTimer-Datei bereitzustellen, kann es eigene Werte für diese Parameter auswählen und das Betriebssystem als festgelegte Antwort oder ein unerwünschtes Ereignis aktualisieren. Das Betriebssystemverhalten ändert sich nicht, wenn sich MaxSegmentSize oder MaxFlushTimer ändern, da es die Datenpakete unabhängig davon empfängt und sie in einer Datei abbildet.

Die folgende MBIM_LOGGING_LEVEL_CONFIG Enumeration wird in der vorherigen MBIM_MODEM_LOGGING_CONFIG Struktur verwendet.

Typ Wert Beschreibung
MBIMLoggingLevelProd 0 Für Telemetrieauflistung aus einer Einzelhandels- oder Produktionspopulation vorgesehen. Das resultierende Protokoll sollte kapselgroß sein und enthält nur Schlüsselmodem- oder MBB-Zustands- oder Fehlerinformationen.
MBIMLoggingLevelLabVerbose 1 Vorgesehen für die Entwicklung von MBB-Produkten mit geringer Reife. Ausführliche Vollständige Stapelerfassung von Modems. Die resultierende Modemaufnahme sollte es dem IHV ermöglichen, die Aufzeichnung während des Protokolls wiederzuverwenden und vollständig wiederherzustellen.
MBIMLoggingLevelLabMedium 2 Vorgesehen für Die Überprüfung und Feldprüfung von MBB-Produkten mit relativer Reife und Stabilität. Die Detail- und Ausführlichkeitsebene bietet genügend Datenpunkte für IHV-Ingenieure, um die meisten MBB-Fehler zu triagen.
MBIMLoggingLevelLabLow 3 Für die Protokollierung auf Hostebene vorgesehen. Erfassung von Vollstapel-Aufnahmemodems auf Zusammenfassungsebene. Ermöglicht ein Allgemeines Verständnis des Zustands und der Betriebssysteminteraktionen des Modems.
MBIMLoggingLevelOem 4 Reserviert für die interne OEM- und IHV-Verwendung.

Set

Ein Satzbefehl wird verwendet, um die Ebene, die Segmentgröße und die maximale Leerlaufzeit für die Modemprotokollierung zu konfigurieren. Eine MBIM_MODEM_LOGGING_CONFIG Struktur wird im InformationBuffer verwendet.

Antwort

Der InformationBuffer in MBIM_COMMAND_DONE enthält eine MBIM_MODEM_LOGGING_CONFIG Struktur.

Unerwünschte Ereignisse

Unerwünschte Ereignisse werden für Szenarien unterstützt, in denen das Modem das Betriebssystem über interne Änderungen informieren muss. Derzeit treten in Windows 10, Version 1903, diese Szenarien nicht auf.

Statuscodes

Diese CID verwendet nur generische Statuscodes, die in Abschnitt 9.4.5 der MBIM-Spezifikation Revision 1.0 definiert sind.

DSS-Sitzungsverhalten während der Inaktivität

In der folgenden Tabelle wird beschrieben, wie sich die DSS-Sitzung während verschiedener Phasen der Inaktivität verhält:

Szenario DSS-Sitzungsstatus
Systemschlaf, Nur-Modem-Energiesparmodus, Zurücksetzen und Wiederherstellung DSS-Sitzung bleibt geöffnet
System heruntergefahren, neu gestartet, Ruhezustand DSS-Sitzung geschlossen