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:
- System operacyjny wysyła MBIM_CID_MODEM_LOGGING_CONFIG CID do modemu w celu skonfigurowania parametrów rejestrowania, takich jak MaxSegmentSize, MaxFlushTime i LoggingLevel.
- 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.
- Po otrzymaniu kodu stanu powodzenia system operacyjny przygotowuje się do odbierania fragmentów z modemu. Te fragmenty są nazywane pakietami DataServiceSessionRead.
- 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.
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 |