Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit onderwerp vindt u tips voor het opsporen van problemen met USB-apparaten met behulp van ETW-gebeurtenissen.
- Diagnose van apparaatumeratiefouten
- Diagnostische fouten bij het starten van apparaten vaststellen
- Timing voor het profileren van apparaatinvoeging
- Software-Initiated Hervattiming voor apparaat
- Tijdsinstellingen voor het hervatten van apparaatHardware-Initiated
- HUB HERVATTING VAN Selectieve Suspend Tijdinstelling
Het diagnosticeren van apparaatenumeratiefouten
U kunt de ETW-gebeurtenissen die zijn gekoppeld aan de opsommingstaak van de USB-hub gebruiken om de hoofdoorzaak te bepalen van de meeste storingen in de opsomming van apparaten.
De gebeurtenissen bekijken in een traceringslogboek dat is gekoppeld aan de enumeratietaak van de USB-hub.
Open Netmon en zoek een opsommingsevenement, zoals 'Opsomming van poort starten'. Klik op de gebeurtenis in het deelvenster Framesamenvatting .
Controleer of de taak voor deze gebeurtenis een USB-hub-inventarisatie is door het taakveld voor de gebeurtenis te controleren:
- Vouw in het deelvenster Framedetails de net-gebeurtenis uit, vouw de koptekst uit, vouw de descriptor uit en zoek vervolgens het taakveld.
- Controleer of het veld Taak de waarde 2 bevat (opsomming usb-hub).
Filter de gebeurtenissen zodat alleen de gebeurtenissen uit het hubstuurprogramma met de taakwaarde 2 worden weergegeven:
Klik met de rechtermuisknop op het veld Taak .
Selecteer Geselecteerde waarde toevoegen om filter weer te geven.
Klik met de rechtermuisknop op de gebeurtenis in het deelvenster Framesamenvatting en selecteer “Protocolnaam” toevoegen aan Weergavefilter.
In het deelvenster Weergavefilter, wijzig 'OF' naar 'EN'. In het volgende voorbeeld ziet u het resulterende filter:
NetEvent.Header.Descriptor.Task == 0x2 AND ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB"Zie 'USB Netmon-filters' in casestudy: Problemen met een onbekend USB-apparaat oplossen met ETW en Netmon voor meer informatie over het gebruik van filters in Netmon.
Diagnostische fouten bij het starten van apparaten vaststellen
Als een apparaat niet kan worden gestart tijdens de verwerking van het I/O-aanvraagpakket (IRP) van het hubstuurprogramma, kunt u de ETW-gebeurtenissen gebruiken die zijn gekoppeld aan de begintaak van het USB-apparaat om de fout op te lossen. Zoek in Netmon een apparaatstartgebeurtenis zoals 'USB Device Start IRP Dispatched'. U kunt de gebeurtenissen filteren om alleen de gebeurtenissen van het hubstuurprogramma weer te geven met de taakwaarde 21 (usb-apparaat starten). Zie 'Diagnose van apparaat-opsommingsfouten' in dit onderwerp voor meer informatie over het maken van een dergelijk filter.
Timing voor het inbrengen van profileerapparaten
U kunt bepalen waar tijd wordt besteed aan het hubstuurprogramma tijdens het invoegen van het apparaat door te kijken naar de tijdstempels van de enumeratiegebeurtenissen.
Opsommingsinstellingen
Het gedeelte van de invoegtijd van het apparaat dat door het hubstuurprogramma is verbruikt om een apparaat op te sommen, is de tijd die is verstreken tussen de volgende twee gebeurtenissen:
- Opsomming van poort starten
- Poortnummering voltooid
Opsommingstaken profileren
Wanneer het USB-hubstuurprogramma een apparaat opsomt, registreert het de volgende gebeurtenissen in de volgende volgorde:
- Start opsomming van poorten
- Opsomming Debounce voltooid
- PDO gemaakt voor opsomming
- Eerste enumeratiepoort reset voltooid
- Enumeratie - CreateDevice Complete
- Herstel van tweede enumeratiepoort voltooid
- Opsomming - InitializeDevice voltooid
- Opsomming - SetupDevice voltooid
- Opsomming van poort voltooid
Als u de tijd wilt bepalen waarop het hubstuurprogramma voor elke opsommingstaak is verbruikt, berekent u de tijd die tussen de voorgaande gebeurtenissen is verstreken. Verstreken tijd tussen IoInvalidateDeviceRelations en IRP_MN_QUERY_DEVICE_RELATIONS
Als u het gedeelte wilt bepalen van de invoegtijd die het systeem heeft verbruikt terwijl het wachtte op de IRP van de queryapparaatrelaties, meet u de verstreken tijd tussen de volgende twee gebeurtenissen:
- Opsomming van poort voltooid
- USB Hub Query Device Relations (BusRelations) IRP verzonden
Verstreken tijd tussen voltooiing van IRP_MN_QUERY_DEVICE_RELATIONS en IRP_MN_START_DEVICE
Als u het gedeelte van de invoegtijd van het apparaat wilt bepalen tussen het rapporteren van het nieuwe fysieke apparaatobject (PDO) aan de Plug en Play-manager en de ontvangst van de start-IRP, meet u de verstreken tijd tussen de volgende twee gebeurtenissen:
- USB Hub Query Device Relations IRP voltooid
- USB-apparaat start IRP verzonden
IRP-tijdsinstellingen starten
Meet de verstreken tijd tussen de volgende twee gebeurtenissen om de tijd te bepalen die is besteed aan het afhandelen van een start-IRP door het hub-driver.
- USB-apparaat start IRP verzonden
- Het IRP-startproces van USB-apparaat is voltooid.
Tijdsinstellingen voor Software-Initiated apparaat hervatten
Het functiestuurprogramma van een apparaat kan een D0-apparaatstroomaanvraag verzenden om het apparaat te hervatten vanaf de onderbrekingsstatus. Meet de verstreken tijd tussen de volgende twee gebeurtenissen om de vereiste tijd te bepalen voor het hervatten van onderbreking en gereed te zijn voor overdrachtsaanvragen:
- USB-apparaatset D0 Apparaatstroom-IRP verzonden
- USB-apparaatset D0 Apparaatstroom-IRP voltooid
Hardware-Initiated Hervattijd van het apparaat
Een hervattingssignaal op de bus zorgt ervoor dat een apparaat wordt hervat vanuit de slaapstand. Als u wilt bepalen hoe lang het apparaat moet hervatten naar een status waarin het gereed is voor overdrachtsaanvragen, meet u de verstreken tijd tussen de volgende twee gebeurtenissen:
- De bovenliggende hub is niet onderbroken:
- Wachtontwaken-IRP van USB-apparaat voltooid
- USB-apparaatset D0 Apparaatstroom-IRP voltooid
- Bovenliggende hub is onderbroken:
- Hervatting van de hub vanuit selectieve onderbreking (de eerste van deze gebeurtenissen voor een hub tussen het apparaat en de hostcontroller)
- USB-apparaatset D0 Apparaatstroom-IRP voltooid
HUB HERVATTEN VAN Selectieve Opschort Timing
U kunt bepalen hoeveel tijd een hub nodig heeft om te hervatten van selectief onderbreken door de verstreken tijd tussen de volgende twee gebeurtenissen te meten:
- Het hervatten van de hub is gestart vanuit selectieve onderbreking
- Hervatting van knooppunt voltooid
Opmerking
De hervattijd van de hub is afhankelijk van de hervattijd van alle apparaten onder de hub en mogelijk enkele of alle hubs boven deze die worden hervat.