Partager via


Utilisation d’identificateurs d’activité

Dans les versions de framework 1.11 et ultérieures, les pilotes UMDF peuvent définir et récupérer des identificateurs d’activité (ID). Les ID d’activité vous permettent d’associer plusieurs demandes d’E/S, afin de pouvoir les suivre à l’aide du suivi d’événements pour Windows (ETW). Cette rubrique décrit certains scénarios possibles dans lesquels le pilote peut utiliser des ID d’activité.

Association de nouvelles requêtes à une demande existante

Dans la fonction de rappel de répartition des E/S de votre pilote, vous pouvez créer plusieurs demandes d’E/S d’infrastructure à la suite d’une demande entrante. Le pilote obtient l’ID d’activité de la requête d’origine et le définit dans les nouvelles requêtes en appelant WdfRequestRetrieveActivityId et WdfRequestSetActivityId.

Pour obtenir un exemple de code, consultez WdfRequestRetrieveActivityId.

Association de nouvelles requêtes à un thread existant

Un pilote peut créer une demande d’E/S dans un thread autre que le thread de répartition d’E/S ou dans un élément de travail. Vous pouvez définir l’ID d’activité d’une telle demande à partir de n’importe quelle demande correspondante, ou à l’aide de l’ID d’activité associé au thread de répartition d’E/S. Le pilote peut récupérer l’ID d’activité associé au thread actuel en appelant EventActivityIdControl , puis en appelant WdfRequestSetActivityId pour définir l’identificateur de chaque nouvelle demande d’E/S.

Si le pilote appelle l’API Win32 pour envoyer une demande d’E/S, il peut récupérer l’ID d’activité de la demande d’origine et le propager au thread. Le gestionnaire d’E/S applique ensuite l’ID d’activité associé au thread à tous les paquets de demandes d’E/S (IRPs) qu’il génère en réponse à la demande.