Udostępnij za pośrednictwem


Rejestrowanie modemu MB za pomocą DSS

Notatka

Jeśli planujesz, aby modem obsługiwał MBIM_CID_MODEM_LOGGING_CONFIG, prześlij opinię na tej stronie, abyśmy mogli cię najlepiej wspierać. Ten CID jest obecnie w fazie eksperymentalnej i nie został jeszcze przetestowany z modemem, ponieważ żaden z nich go nie obsługuje.

W tym temacie opisano nowy standardowy interfejs rejestrowania łączy szerokopasmowych systemu Windows (MBB) za pośrednictwem rozszerzeń firmy Microsoft do specyfikacji USB MBIM 1.0, dostępnej w systemie Windows 10 w wersji 1903 lub nowszej.

Dzięki temu nowemu interfejsowi rejestrowania system operacyjny może poinformować urządzenie MBB o uruchamianiu, zatrzymywaniu i opróżnianiu dzienników do systemu plików systemu operacyjnego za pomocą poleceń CID MBIM. Z uwagi na nie-IP charakter ładunku rejestrowania modemu, kanał przesyłania danych, który używa usługa MBB do przesyłania ładunków rejestrowania do systemu operacyjnego, korzysta ze strumienia usługi danych MBB (DSS). DSS jest zdefiniowany w specyfikacji Mobile Broadband Interface Model (MBIM) 1.0.

System operacyjny upraszcza funkcje diagnostyczne i konfiguracje modemu w obrębie całego ekosystemu MBB, z wykorzystaniem zestawu konfiguracji rejestrowania MBB specyficznych dla systemu Windows. Te konfiguracje rejestrowania MBB umożliwiają producentowi modemu dopasowanie potrzeb rejestrowania MBB systemu operacyjnego do odpowiednich wewnętrznych konfiguracji rejestrowania. Konfiguracje rejestrowania abstrakcyjne i zdefiniowane przez system operacyjny obejmują poziomy szczegółowości rejestrowania MBB i maksymalny czas opróżniania.

Modem utrzymuje wypełnienie buforu rejestrowania, do maksymalnego rozmiaru buforu, dopóki segment nie zostanie wypełniony, a struktura MBIM przesyła segment do systemu operacyjnego lub opróżnia zawartość buforu po osiągnięciu maksymalnego czasu opróżniania (nawet jeśli segment nie jest wypełniony). System operacyjny definiuje zestaw standardowych poziomów konfiguracji rejestrowania MBB systemu Windows opisanych w dalszej części tego tematu. Każdy poziom konfiguracji określa abstrakcję szczegółów rejestrowania MBB w systemie operacyjnym oraz poziom szczegółowości.

Abstrakcja poziomów konfiguracji MBB w systemie operacyjnym jest mapowana przez modemy na odpowiednią konfigurację wewnętrznego modemu. System operacyjny nie udostępnia żadnych dodatkowych ładunków konfiguracyjnych, takich jak filtry rejestrowania czy maski, do modemów z wyjątkiem tych na poziomie konfiguracji MBB systemu operacyjnego.

W przypadku modemów obsługujących rejestrowanie MBB wszystkie poziomy konfiguracji rejestrowania MBB z wyjątkiem MBIMLoggingLevelOem muszą być obecne we wszystkich wariantach BSP. Innymi słowy, IHV lub OEM musi obsługiwać poziomy PROD lub LAB logowania MBB zarówno w wersjach produkcyjnych, jak i R&D dostawcy BSP. Poziomy LAB rejestrowania MBB można wyłączyć tylko z systemu operacyjnego.

Ten nowy interfejs rejestrowania używa kanału sterowania do ustawiania parametrów rejestrowania i używa kanału danych do odbierania dzienników modemu, ponieważ kanał danych został zaprojektowany do transferu danych modemu zbiorczego. Zaletą tego projektu jest to, że zbiorcze dane nie muszą być przesyłane za pośrednictwem kanału sterowania, dzięki czemu wydajność urządzenia jest spójna. Umożliwia również skalowanie w celu zwiększenia przepływności. Kanał danych jest obsługiwany przez polecenia DSS. Przykładowy przepływ modemu może wyglądać następująco:

  1. System operacyjny wysyła MBIM_CID_MODEM_LOGGING_CONFIG CID do modemu w celu skonfigurowania parametrów rejestrowania, takich jak MaxSegmentSize, MaxFlushTime i LoggingLevel.
  2. Gdy system operacyjny otrzyma pomyślną odpowiedź z modemu, wysyła do niego polecenie DSS MBIM_CID_DSS_CONNECT z określonym identyfikatorem GUID do logowania modemu, stanem MBIMDssLinkActivate i unikatowym identyfikatorem sesji DSS.
  3. Po otrzymaniu kodu stanu powodzenia system operacyjny przygotowuje się do odbierania fragmentów z modemu. Te fragmenty są nazywane pakietami DataServiceSessionRead.
  4. Pakiety DataServiceSessionRead są nadal dostarczane, dopóki system operacyjny nie wyda innego polecenia MBIM_CID_DSS_CONNECT z tym samym identyfikatorem sesji DSS i stanem MBIMDSSLinkDeactivate.

Gdy modem zapisuje wszystkie dzienniki w nowo utworzonym kanale danych, modem wywołuje MbbDeviceReceiveDeviceServiceSessionData, dane, z których są dostępne dla aplikacji za pośrednictwem warstwy WinRT: MobileBroadbandDeviceService. Dzienniki modemu powinny być sformatowane jako dane ciągów drukowalnych, które można przekierować do sesji ETW.

Ścieżka danych logowania modemu

Rejestrowanie modemu używa strumienia usługi danych MBIM (DSS) do transferu danych na potrzeby ładunków rejestrowania. Aby uzyskać więcej informacji na temat DSS, zobacz sekcję 10.5.38 specyfikacji MBIM 1.0.

Podczas nawiązywania połączenia lub rozłączania z usługą DSS do rejestrowania modemów jest używany następujący identyfikator GUID:

GUID (Globalnie Unikalny Identyfikator) Wartość
ModemFileTransfer GUID 0EBB1CEB-AF2D-484D-8DF3-53BC51FD162C

Na poniższym diagramie przepływu przedstawiono proces konfiguracji i demontażu DSS.

diagram przepływu ustawień i zrywania rejestrowania modemu DSS.

Rozszerzenie interfejsu NDIS

Następujący identyfikator OID został zdefiniowany w systemie Windows 10 w wersji 1903 w celu obsługi rejestrowania modemów.

Wartości usługi MBIM i CID

Nazwa usługi Identyfikator UUID Wartość UUID
Podstawowe rozszerzenia łączności IP Microsoft UUID_BASIC_CONNECT_EXTENSIONS 3d01dcc5-fef5-4d05-9d3a-bef7058e9aaf

W poniższej tabeli określono identyfikator UUID i kod polecenia dla każdego identyfikatora CID, a także, czy CID obsługuje żądania typu Set, Query lub Event (powiadomienie). Zobacz poszczególne sekcje każdego CID w tym temacie, aby uzyskać szczegółowe informacje o jego parametrach, strukturach danych i powiadomieniach.

CID Identyfikator UUID Kod polecenia Zbiór Zapytanie Powiadom
MBIM_CID_MODEM_LOGGING_CONFIG UUID_BASIC_CONNECT_EXTENSIONS TBD Y Y Y

MBIM_CID_MODEM_LOGGING_CONFIG

Ten identyfikator CID służy do konfigurowania dzienników zbieranych przez modem i częstotliwości ich wysyłania z modemu do hosta za pośrednictwem DSS. Rejestrowanie należy skonfigurować przed rozpoczęciem sesji rejestrowania. Ponieważ ten CID jest częścią rozszerzeń łączenia, wspieranie tego CID jest opcjonalne dla niezależnych dostawców sprzętu. Jeśli IHV obsługuje rejestrowanie modemów za pośrednictwem kanału danych DSS, musi określić to jako funkcjonalność. Możliwość można ogłaszać, używając MBIM_BASIC_CID_DEVICE_SERVICES CID.

Parametry

Operacja Zbiór Zapytanie Powiadomienie
Polecenie Konfiguracja Logowania Modemu MBIM Nie dotyczy Nie dotyczy
Odpowiedź MBIM_MODEM_LOGGING_CONFIG Konfiguracja logowania modemu MBIM MBIM_MODEM_LOGGING_CONFIG

Zapytanie

Sprawdza bieżącą konfigurację rejestrowania modemu. InformationBuffer z MBIM_COMMAND_MSG nie jest używany. Następująca struktura MBIM_MODEM_LOGGING_CONFIG jest używana w usłudze InformationBuffer MBIM_COMMAND_DONE.

MBIM_MODEM_LOGGING_CONFIG

Przesunięcie Rozmiar Pole Typ Opis
0 4 Wersja UINT32 Numer wersji tej struktury. To pole musi być ustawione na 1 dla wersji 1 tej struktury.
4 4 MaksymalnyRozmiarSegmentu UINT32 Określa rozmiar segmentu w kilobajtach dla każdego fragmentu wysyłanego przez modem. Jeśli maksymalny rozmiar fragmentu obsługiwany przez modem polecenia usługi urządzenia przekracza ustawioną wartość, ta wartość jest ustawiona na maksymalny obsługiwany rozmiar segmentu.
8 4 MaxFlushTime UINT32 Czas (w milisekundach) wskazujący maksymalny czas oczekiwania modemu przed wysłaniem fragmentu dziennika. Jeśli zebrane dzienniki nie osiągają MaxSegmentSize w ciągu MaxFlushTime od momentu wysłania ostatniego fragmentu dziennika, wówczas fragment dziennika jest wysyłany niezależnie od jego rozmiaru. Jeśli nie ma żadnych danych rejestrowania, nie zostanie wysłane żadne powiadomienie. Jeśli urządzenie nie może obsłużyć krótszych czasów opróżniania, zwraca czas, który jest w stanie obsłużyć w odpowiedzi. Odpowiedź na zapytanie lub zestaw zapytań zawiera aktualnie skonfigurowane MaxFlushTime.
12 4 LevelConfig MBIM_LOGGING_LEVEL_CONFIG Konfiguruje poziom, na którym są zbierane dzienniki. Odpowiedź na zapytanie lub zestaw zawiera aktualnie skonfigurowane LevelConfig.

Notatka

Jeśli modem nie może udostępnić danych logów do systemu operacyjnego w żądanym MaxSegmentSize i MaxFlushTimer, może wybrać własne wartości dla tych parametrów i zaktualizować system operacyjny jako ustaloną odpowiedź lub jako niezamówione zdarzenie. Zachowanie systemu operacyjnego nie zmienia się, jeśli MaxSegmentSize lub MaxFlushTimer zostaną zmienione, ponieważ odbiera pakiety danych niezależnie od tego i zrzuca je do pliku.

Następujące MBIM_LOGGING_LEVEL_CONFIG wyliczenie jest używane w poprzedniej strukturze MBIM_MODEM_LOGGING_CONFIG.

Typ Wartość Opis
MBIMLoggingLevelProd 0 Przeznaczone do zbierania danych telemetrycznych z populacji detalicznej lub produkcyjnej. Wynikowy dziennik powinien mieć rozmiar kapsuły i zawierać tylko kluczowe informacje o stanie lub awariach modemu albo MBB.
MBIMLoggingLevelLabVerbose 1 Przeznaczony do rozwoju produktów MBB o niskiej dojrzałości. Rozbudowane przechwytywanie pełnych stosów modemów. Wynikowe przechwytywanie modemu powinno umożliwić IHV ponowne odtworzenie i pełne odzyskanie przechwytywania podczas rejestrowania.
MBIMLoggingLevelLabMedium 2 Przeznaczone do weryfikacji i testów terenowych produktów MBB o względnej dojrzałości i stabilności. Poziom szczegółowości i ilość informacji zapewnia wystarczającą ilość danych dla inżynierów IHV do przeanalizowania większości błędów MBB.
MBIMLoggingLevelLabLow 3 Przeznaczone do rejestrowania na poziomie własnego hostingu. Przechwytywanie na poziomie podsumowania pełnozakresowych modemów. Umożliwia ogólne zrozumienie stanu modemu i interakcji z systemem operacyjnym.
MBIMLoggingLevelOem 4 Zarezerwowane dla użycia wewnętrznego OEM i IHV.

Zbiór

Polecenie set służy do konfigurowania poziomu, rozmiaru segmentu i maksymalnego czasu opróżniania na potrzeby rejestrowania modemów. Struktura MBIM_MODEM_LOGGING_CONFIG jest używana w usłudze InformationBuffer.

Odpowiedź

Struktura MBIM_MODEM_LOGGING_CONFIG znajduje się w buforze informacji MBIM_COMMAND_DONE.

Zdarzenia niezamówione

Niepożądane zdarzenia są obsługiwane w scenariuszach, w których modem musi poinformować system operacyjny o zmianach wewnętrznych. Obecnie w systemie Windows 10 w wersji 1903 te scenariusze nie występują.

Kody stanu

Ten CID używa tylko ogólnych kodów stanu zdefiniowanych w sekcji 9.4.5 specyfikacji MBIM wersji 1.0.

Zachowanie sesji DSS podczas braku aktywności

W poniższej tabeli opisano, jak działa sesja DSS na różnych etapach braku aktywności:

Scenariusz Stan sesji DSS
Uśpienie systemu, uśpienie tylko modemu, resetowanie i odzyskiwanie Sesja DSS jest otwarta
Zamykanie systemu, ponowne uruchamianie, hibernacji Sesja DSS została zamknięta