Partager via


Utilisation de Windows Performance Toolkit (WPT) avec WDF

À compter de Windows 10, vous pouvez utiliser windows Performance Toolkit (WPT) pour afficher les données de performances pour un pilote KMDF (Kernel-Mode Driver Framework) ou UMDF (User-Mode Driver Framework) 2 donné.

Comment les extensions WDF (Windows Driver Frameworks) peuvent-elles être utiles pour l’aide WPT ?

Vous pouvez utiliser WPT pour obtenir des insights sur les performances ou résoudre les problèmes de performances. Par exemple :

  • Examinez le taux d’achèvement des demandes D/S WDF du pilote, l’utilisation du processeur et le temps passé dans pnP et les rappels d’alimentation.
  • Comparez un pilote UMDF 2 à un pilote KMDF similaire et déterminez si UMDF répond à vos besoins en matière de performances.
  • Identifiez les problèmes de performances dans le chemin d’E/S WDF.
  • Déterminez quelle instance d’un rappel donné prend beaucoup de temps. Examinez ensuite l’utilisation de l’UC échantillonné pour comprendre pourquoi.
  • Vérifiez si l’appareil effectue des transitions d’alimentation dans et hors de l’état d’alimentation D0 trop fréquemment.

Mise en route

Le WPT fait partie du Kit de déploiement et d’évaluation Windows (ADK). Vous pouvez installer ADK à partir du téléchargement et installer Windows ADK.

WpT se compose de deux outils distincts : Enregistreur de performances Windows et Windows Analyseur de performances (WPA). Dans cette rubrique, nous utilisons WPR pour enregistrer une trace, puis WPA pour afficher la trace dans un format d’interface graphique configurable.

Pour savoir comment utiliser windows Performance Toolkit pour mesurer les performances d’un pilote WDF, regardez la vidéo suivante ou lisez les étapes ci-dessous. La vidéo et les étapes couvrent la même procédure.

Enregistrement et affichage d’un journal des événements pour un pilote WDF

  1. Installez votre pilote, s’il n’est pas déjà installé.

  2. Dans une invite de commandes avec élévation de privilèges, entrez la commande suivante.

    <WdfPerfEnhancedVerifier.cmd ServiceName><UMDF ou KMDF>

    Notez WdfPerfEnhancedVerifier.cmd devez être copiée à partir de l’emplacement où vous avez installé WPT. Si vous avez installé WPT sur une machine de développement, vous devez copier le script à partir du répertoire d’installation WPT sur l’ordinateur cible.

Ce script définit les entrées de Registre pour le pilote spécifié afin que l’infrastructure consigne les événements requis pour activer l’analyse des performances lorsque le fournisseur ETW est activé à l’étape 4.

  1. Redémarrez l'ordinateur.

  2. Dans une invite de commandes avec élévation de privilèges, entrez la commande suivante.

    Wpr.exe -Start WdfTraceLoggingProvider -filemode

    Cette commande active le fournisseur ETW pour WDF. L’ordinateur démarre l’enregistrement d’une trace.

    Notez que dans l’étape 2, Wpr.exe devez être copié à partir de l’emplacement où vous avez installé WPT. Si vous avez installé WPT sur une machine de développement, copiez ces fichiers à partir du répertoire d’installation WPT sur l’ordinateur cible.

    Sur Windows 10 pour les éditions de bureau (Famille, Professionnel, Entreprise et Éducation), vous pouvez également démarrer la trace avec Wprui.exe, qui fournit une interface utilisateur graphique pour enregistrer les traces. Sous d’autres options, développez l’analyse des ressources et sélectionnez Activité du pilote WDF.

  3. Exercez votre scénario d’intérêt.

  4. Arrêter la session de trace ETW : Wpr.exe -Stop MyPerfTrace.etl

  5. Ouvrez le journal des traces d’événements dans la visionneuse windows Analyseur de performances :

    Wpa.exe MyPerfTrace.etl

Pour capturer une autre trace pour le même pilote, utilisez Wpr.exe pour démarrer et arrêter une nouvelle trace. Pour capturer une trace pour un autre pilote, réexécutez d’abord WdfPerfEnhancedVerifier.cmd pour le nouveau pilote.

Analyse de la trace

Pour commencer à analyser les performances du pilote, recherchez l’Explorateur Graph sur la gauche, ouvrez la catégorie Calcul, puis faites glisser le graphique UMDF ou KMDF vers la zone de travail principale, sous l’onglet Analyse. Cette capture d’écran montre le volet Explorateur Graph :

Capture d’écran du volet Explorateur Graph dans Windows Analyseur de performances.

Il existe une table dédiée pour UMDF et une autre pour les pilotes KMDF.

Graphique des demandes d’E/S UMDF et tableau récapitulatif

WPT peut afficher le débit de saisie semi-automatique des E/S WDF de deux façons :

  • Nombre de demandes d’E/S qui se terminent par seconde
  • Durée de chaque requête d’E/S (mise en forme sous forme de diagramme de Gantt)

La capture d’écran suivante montre des exemples de graphiques récapitulatives et des tableaux pour les performances des requêtes d’E/S UMDF et processeur. Dans le graphique taux d’achèvement des demandes d’E/S UMDF, le nombre de requêtes par seconde s’affiche sur l’axe y.

Capture d’écran d’exemples de graphiques récapitulatives pour les requêtes d’E/S UMDF et l’utilisation du processeur (échantillonné).

Dans le tableau récapitulative, la plupart des colonnes sont explicites, mais il y a quelques points à noter. La colonne WdfDevice contient le handle WDFDEVICE associé à la requête d’E/S. ActivityID contient un identificateur unique pour la requête d’E/S. L’infrastructure crée cet identificateur lorsqu’il remet une requête d’E/S au pilote. Si un identificateur d’activité est déjà associé au protocole IRP correspondant, l’infrastructure utilise cet identificateur. Pour plus d’informations, consultez Utilisation des identificateurs d’activité.

L’heure d’entrée est l’horodatage de trace lorsque l’infrastructure a remis la requête au pilote, et l’heure de sortie est l’horodatage lorsque le pilote appelé WdfRequestComplete ou une méthode associée pour terminer la requête.

Graphique des demandes d’E/S KMDF et tableau de synthèse

Voici une capture d’écran similaire montrant les informations de demande d’E/S pour un pilote KMDF.

Capture d’écran d’un graphique pour les performances des requêtes d’E/S KMDF.

Graphique de rappel Power PnP et tableau récapitulative

WPT peut également afficher le temps de traitement de chaque pnP et rappel d’alimentation. La capture d’écran suivante montre la durée de rappel EvtDeviceD0Entry, EvtDeviceD0Exit et EvtDevicePrepareHardware pour un exemple de pilote KMDF et un exemple de pilote UMDF.

La colonne WdfDevice contient le handle WDFDEVICE associé au rappel. ActivityID contient un identificateur unique pour l’instance de rappel.

Capture d’écran d’un graphique de rappel Power PnP pour les pilotes KMDF et UMDF.

Quels appels sont instrumentés ?

Cette section décrit les événements utilisés pour générer les graphiques et les tableaux indiqués ci-dessus.

Après avoir exécuté WdfPerfEnhancedVerifier.cmd pour un pilote spécifique, l’infrastructure enregistre les événements dans le journal de trace ETL lorsque le système appelle certains rappels du pilote spécifié, ainsi que lorsque le pilote spécifié appelle certaines méthodes d’infrastructure.

Pour déterminer quand les demandes d’E/S démarrent, l’infrastructure enregistre les événements lorsqu’il appelle les rappels suivants :

L’infrastructure enregistre également les événements de démarrage des demandes d’E/S lorsque le pilote appelle les méthodes suivantes :

Pour déterminer quand les demandes d’E/S se terminent, l’infrastructure effectue le suivi lorsque le pilote appelle :

Enfin, pour déterminer la durée de rappel pour les rappels PnP/Power, l’infrastructure enregistre quand elle appelle les routines de rappel fournies par le pilote suivantes et quand elles se terminent :

Ressources et résolution des problèmes

  • Veillez à redémarrer après avoir exécuté le script WdfPerfEnhancedVerifier.cmd.

  • Pour déterminer si votre pilote est configuré pour enregistrer un journal des événements, utilisez le ! Commande de débogueur de noyau WdfKd.wdfdriverinfo . Si le pilote est configuré pour le suivi des performances, vous verrez la sortie comme suit :

    !WdfKd.WdfDriverInfo Echo.sys
    …
    …
    ----------------------------------
    
    WDF Verifier settings for echo.sys is ON
      Enhanced verifier: performance analysis hooking ON
    ----------------------------------
    
  • À des fins de développement et de test uniquement, l’application de la stratégie de signature de code de pilote peut être temporairement désactivée. Pour plus d’informations, consultez Installation d’un package de pilotes non signés pendant le développement et le test.

Windows Performance Analyzer