Udostępnij przez


Debugowanie problemów z urządzeniem USB przy użyciu zdarzeń ETW

Ten temat zawiera porady dotyczące debugowania problemów z urządzeniem USB przy użyciu zdarzeń ETW.

Diagnozowanie błędów enumeracji urządzeń

Zdarzenia ETW skojarzone z zadaniem wyliczania koncentratora USB umożliwiają określenie głównej przyczyny większości błędów wyliczania urządzeń.

Aby wyświetlić zdarzenia w dzienniku śledzenia skojarzonym z zadaniem wyliczania koncentratora USB

  1. Otwórz program Netmon i znajdź zdarzenie wyliczenia, takie jak "Rozpocznij wyliczanie portu". Kliknij zdarzenie w okienku Podsumowanie ram.

  2. Upewnij się, że zadanie dla tego zdarzenia to enumeracja koncentratora USB, sprawdzając pole Zadanie dla zdarzenia:

    1. W okienku Szczegóły ramki rozwiń Zdarzenie sieciowe, rozwiń Nagłówek, rozwiń Deskryptor, a następnie znajdź pole Zadanie.
    2. Upewnij się, że pole „Zadanie” zawiera wartość 2 (enumeracja koncentratora USB).
  3. Przefiltruj zdarzenia, aby wyświetlić tylko te z sterownika centrum, które mają wartość zadania 2:

    1. Kliknij prawym przyciskiem myszy pole Zadanie .

    2. Wybierz pozycję Dodaj wybraną wartość , aby wyświetlić filtr.

    3. Kliknij prawym przyciskiem myszy zdarzenie w okienku Podsumowanie ramki i wybierz polecenie Dodaj"Nazwa protokołu" do filtru wyświetlania.

    4. W okienku Filtr wyświetlania zmień wartość "OR" na "AND". Poniższy przykład przedstawia wynikowy filtr:

      NetEvent.Header.Descriptor.Task == 0x2 AND ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB"
      

      Aby uzyskać więcej informacji na temat używania filtrów w programie Netmon, zobacz "USB Netmon Filters" w temacie Case Study: Troubleshooting an Unknown USB Device by Using ETW and Netmon (Rozwiązywanie problemów z nieznanym urządzeniem USB przy użyciu funkcji ETW i Netmon).

Diagnozowanie błędów uruchamiania urządzenia

Jeśli nie można uruchomić urządzenia podczas obsługi przez sterownik koncentratora pakietu żądania rozpoczęcia we/wy urządzenia (IRP), możesz użyć zdarzeń ETW skojarzonych z zadaniem uruchomienia urządzenia USB, aby rozwiązać problem. W programie Netmon znajdź zdarzenie uruchamiania urządzenia, takie jak "USB Device Start IRP Dispatched". Możesz filtrować zdarzenia, aby wyświetlać tylko te pochodzące ze sterownika koncentratora z wartością zadania 21 (uruchomienie urządzenia USB). Aby uzyskać więcej informacji na temat tworzenia takiego filtru, zobacz "Diagnozowanie błędów wyliczenia urządzeń" w tym temacie.

Profilowanie czasu wstawiania urządzenia

Możesz określić, gdzie jest poświęcany czas w sterowniku centrum podczas wstawiania urządzenia, przeglądając znaczniki czasu zdarzeń wyliczenia.

Chronometraż wyliczania

Czas użyty przez sterownik koncentratora na enumerację urządzenia to okres, który upłynął między następującymi dwoma zdarzeniami:

  • Rozpocznij wyliczenie portu
  • Zakończono wyliczanie portu

Profilowanie zadań enumeracyjnych

Gdy sterownik koncentratora USB wylicza urządzenie, rejestruje następujące zdarzenia w następującej kolejności:

  • Rozpocznij wyliczenie portu
  • Ukończono wyliczenie
  • PdO utworzone dla wyliczeń
  • Ukończono pierwsze resetowanie portu wyliczenia
  • Wyliczenie — CreateDevice Complete
  • Zakończenie resetu portu numeracji drugiego poziomu
  • Wyliczenie — InicjalizacjaUrządzenia Zakończona
  • Wyliczenie: SetupDevice Zakończono
  • Wyliczanie ukończonego portu

Aby określić czas zajęty przez sterownik koncentratora dla każdego zadania wyliczenia, należy obliczyć czas, który upłynął między następującymi po sobie zdarzeniami. Upłynął czas między IoInvalidateDeviceRelations i IRP_MN_QUERY_DEVICE_RELATIONS

Aby określić część czasu wstawiania urządzenia, który system zużywał podczas oczekiwania na IRP relacji urządzeń zapytań, zmierz czas, jaki upłynął między następującymi dwoma zdarzeniami:

  • Zakończono wyliczanie portu
  • Wysłanie zapytania IRP o relacje urządzeń koncentratora USB (BusRelations)

Czas upłynął między ukończeniem IRP_MN_QUERY_DEVICE_RELATIONS a IRP_MN_START_DEVICE

Aby określić część czasu wstawiania urządzenia między raportowaniem nowego obiektu urządzenia fizycznego (PDO) do menedżera Plug and Play i otrzymania początkowego protokołu IRP, zmierz czas, który upłynął między następującymi dwoma zdarzeniami:

  • Zakończono przetwarzanie IRP zapytania o relacje urządzeń z koncentratorem USB
  • Rozpoczęcie wysyłania IRP urządzenia USB

Rozpoczynanie czasowania IRP

Aby określić czas spędzony w sterowniku koncentratora obsługującym początkowy protokół IRP, zmierz czas, który upłynął między następującymi dwoma zdarzeniami:

  • Rozpoczęcie protokołu IRP dla urządzenia USB
  • Ukończono protokół IRP uruchamiania urządzenia USB

Software-Initiated czas wznawiania działania urządzenia

Sterownik funkcji urządzenia może wysłać żądanie zasilania urządzenia D0 w celu wznowienia urządzenia ze stanu wstrzymania. Aby określić wymagany czas wznowienia działania urządzenia z wstrzymania i gotowości do żądań przeniesienia, zmierz czas, jaki upłynął między następującymi dwoma zdarzeniami:

  • Urządzenie USB ustawione na D0, żądanie mocy IRP wysłane
  • Zestaw urządzeń USB D0 Urządzenie zasilania IRP ukończono

Hardware-Initiated czas wznawiania działania urządzenia

Sygnał wznawiania na magistrali powoduje, że urządzenie wznawia działanie ze stanu wstrzymania. Aby określić wymagany czas wznowienia urządzenia do stanu, w którym jest gotowy do żądań przeniesienia, zmierz czas, który upłynął między następującymi dwoma zdarzeniami:

  • Centrum nadrzędne nie jest zawieszone:
    • Zakończono IRP wzbudzenia oczekującego urządzenia USB
    • Zestaw urządzeń USB D0 Urządzenie zasilania IRP ukończono
  • Centrum nadrzędne jest zawieszone:
    • Rozpoczęto wznawianie koncentratora z selektywnego wstrzymania (pierwsze z tych zdarzeń dla dowolnego koncentratora pomiędzy urządzeniem a kontrolerem hosta)
    • Zestaw urządzeń USB D0 Urządzenie zasilania IRP ukończono

WZNAWIANIE KONCENTRATORA Z selektywnego wstrzymania chronometrażu

Możesz określić wymagany czas wznowienia centrum z selektywnego wstrzymania, mierząc czas, który upłynął między następującymi dwoma zdarzeniami:

  • Rozpoczęto wznawianie działania koncentratora z selektywnego wstrzymania
  • Podsumowanie ukończenia węzła

Uwaga

Czas wznowienia koncentratora zależy od czasu wznowienia wszystkich urządzeń poniżej centrum i prawdopodobnie niektórych lub wszystkich koncentratorów powyżej centrum, które jest wznawiane.