Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma obsahuje tipy pro ladění problémů s USB zařízeními pomocí událostí ETW.
- Diagnostika selhávání při výčtu zařízení
- diagnostika selhání spuštění zařízení
- Časování vložení zařízení pro profilování
- Software-Initiated Časování obnovení zařízení
- Hardware-Initiated obnovení časování zařízení
- OBNOVENÍ HUBU Z Režimu Selektivního Pozastavení
Diagnostika selhání výčtu zařízení
K určení příčiny většiny selhání při výčtu zařízení můžete použít události ETW, které jsou přidruženy k úloze výčtu rozbočovače USB.
Zobrazení událostí v protokolu trasování, které jsou přidružené k úloze výčtu rozbočovače USB
Otevřete Netmon a vyhledejte událost výčtu, například "Spustit výčet portu". Klikněte na událost v podokně Souhrn rámce.
Ověřte, že úkol pro tuto událost je enumerace rozbočovače USB, a to prozkoumáním pole Úkol události.
- V podokně Podrobnosti rámce rozbalte Net Event, rozbalte záhlaví, rozbalte deskriptor, a poté vyhledejte pole úkolu.
- Ověřte, že pole Úkol obsahuje hodnotu 2 (výčet rozbočovače USB).
Vyfiltrujte události tak, aby zobrazovaly pouze události z ovladače centra, který má hodnotu úkolu 2:
Klikněte pravým tlačítkem myši na pole úkolu.
Vyberte Přidat vybranou hodnotu do filtru zobrazení .
Klikněte pravým tlačítkem myši na událost v podokně Souhrn rámce a vyberte PřidatNázev protokolu do Filtr zobrazení.
V podokně Filtr zobrazení změňte "OR" na "AND". Následující ukázka ukazuje výsledný filtr:
NetEvent.Header.Descriptor.Task == 0x2 AND ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB"
Další informace o použití filtrů v Netmon, viz "USB Netmon Filters" v případová studie: Řešení potíží s neznámým USB zařízením pomocí ETW a Netmon.
Diagnostika selhání spuštění zařízení
Pokud se zařízení nespustí během zpracování ovladače rozbočovače požadavku na vstupně-výstupní operaci (IRP) zařízení, můžete k řešení selhání použít události ETW, které jsou přidruženy k úloze spuštění zařízení USB. V nástroji Netmon vyhledejte událost spuštění zařízení, například "USB Device Start IRP Dispatched". Události můžete filtrovat tak, aby zobrazovaly pouze události z ovladače rozbočovače s hodnotou úkolu 21 (spuštění zařízení USB). Další informace o vytvoření takového filtru naleznete v části Diagnostika selhání výčtu zařízení v tomto tématu.
Profilace časování vložení zařízení
Čas strávený v ovladači rozbočovače během vkládání zařízení můžete určit tak, že se podíváte na časová razítka událostí enumerace.
Časování výčtu
Část času vložení zařízení, kterou ovladač rozbočovače spotřeboval k vytvoření výčtu zařízení, je čas uplynulý mezi následujícími dvěma událostmi:
- Spuštění výčtu portu
- Výčet dokončeného portu
Profilovací úlohy výčtu
Když ovladač rozbočovače USB vytvoří výčet zařízení, protokoluje následující události v následujícím pořadí:
- Spuštění výčtu portu
- Výčet – dokončeno
- Objekt PDO vytvořený pro výčet
- První reset výčtového portu dokončen
- Výčet – CreateDevice Complete
- Reset druhého výčtu portu dokončen.
- Výčet – InitializeDevice Complete
- Výčet – SetupDevice Dokončeno
- Výčet dokončeného portu
Chcete-li zjistit čas, kdy ovladač centra spotřeboval pro každou úlohu výčtu, vypočítejte čas, který uplynul mezi předchozími událostmi. Doba uplynula mezi IoInvalidateDeviceRelations a IRP_MN_QUERY_DEVICE_RELATIONS
Pokud chcete určit, jakou část času systému zabralo vkládání zařízení během čekání na IRP dotazu na vztahy s zařízeními, změřte uplynulý čas mezi následujícími dvěma událostmi:
- Výčet dokončeného portu
- Dotaz na vztahy zařízení rozbočovače USB (BusRelations) – zpracovávání IRP
Časový interval uplynulý mezi dokončením IRP_MN_QUERY_DEVICE_RELATIONS a IRP_MN_START_DEVICE
Chcete-li určit část času vložení zařízení mezi hlášením nového objektu fyzického zařízení (PDO) správci plug and play a přijetí počátečního protokolu IRP, změřte uplynulý čas mezi následujícími dvěma událostmi:
- IRP pro relaci zařízení rozbočovače USB dokončeno
- Zahájení IRP pro zařízení USB
Spuštění časování protokolu IRP
Pokud chcete určit čas strávený v ovladači centra, který zpracovává počáteční IRP, změřte uplynulý čas mezi následujícími dvěma událostmi:
- Spuštění IRP zařízení USB odesláno
- Dokončení IRP zahájeno zařízením USB
Software-Initiated Časování obnovení zařízení
Ovladač funkce zařízení může odeslat žádost o napájení zařízení D0, která obnoví zařízení ze stavu pozastavení. Pokud chcete určit požadovanou dobu, po kterou má zařízení pokračovat od pozastavení a připravit se na žádosti o převod, změřte uplynulý čas mezi následujícími dvěma událostmi:
- Zařízení USB Set D0 Zařízení Power IRP Odesláno
- Sada zařízení USB D0 Zařízení Power IRP dokončena
Hardware-Initiated Časování obnovení zařízení
Signál pro obnovení na sběrnici způsobí obnovení zařízení z pozastaveného stavu. Pokud chcete určit požadovanou dobu obnovení zařízení do stavu, ve kterém je připravené na žádosti o převod, změřte uplynulý čas mezi následujícími dvěma událostmi:
- Nadřazené centrum není pozastavené:
- USB zařízení Wait Wake IRP dokončeno
- Sada zařízení USB D0 Zařízení Power IRP dokončena
- Nadřazené centrum je pozastavené:
- Zahájeno obnovení rozbočovače ze selektivního pozastavení (první z těchto událostí pro libovolný rozbočovač mezi zařízením a hostitelským řadičem)
- Sada zařízení USB D0 Zařízení Power IRP dokončena
OBNOVENÍ CENTRA ZE selektivního pozastavení časování
Požadovanou dobu obnovení centra ze selektivního pozastavení můžete určit měřením uplynulé doby mezi následujícími dvěma událostmi:
- Spuštění obnovení centra ze selektivního pozastavení
- Obnovení rozbočovače bylo dokončeno.
Poznámka:
Časování obnovení rozbočovače závisí na časování obnovení všech zařízení pod rozbočovačem a případně také na některých nebo všech rozbočovačích nad tím rozbočovačem, který se obnovuje.