Dela via


Använda aktivitetsidentifierare

I ramverksversionerna 1.11 och senare kan UMDF-drivrutiner ange och hämta aktivitetsidentifierare (ID:n). Med aktivitets-ID:n kan du associera flera I/O-begäranden så att du kan spåra dem med hjälp av händelsespårning för Windows (ETW). I det här avsnittet beskrivs några möjliga scenarier där drivrutinen kan använda aktivitets-ID:t.

Associera nya begäranden med en befintlig begäran

I drivrutinens I/O-återanropsfunktion kan du skapa flera ramverks-I/O-begäranden som ett resultat av en inkommande begäran. Drivrutinen hämtar aktivitets-ID:t från den ursprungliga begäran och anger det i de nya begärandena genom att anropa WdfRequestRetrieveActivityId och WdfRequestSetActivityId.

Ett kodexempel finns i WdfRequestRetrieveActivityId.

Associera nya begäranden med en befintlig tråd

En drivrutin kan skapa en ny I/O-begäran i en annan tråd än I/O-sändningstråden eller i ett arbetsobjekt. Du kan ange aktivitets-ID för en sådan begäran från en motsvarande begäran eller med hjälp av aktivitets-ID:t som är associerat med I/O-sändningstråden. Drivrutinen kan hämta aktivitets-ID:t som är associerat med den aktuella tråden genom att anropa EventActivityIdControl och sedan anropa WdfRequestSetActivityId för att ange identifieraren för varje ny I/O-begäran.

Om drivrutinen anropar Win32-API:et för att skicka en I/O-begäran kan den hämta aktivitets-ID:t från den ursprungliga begäran och sprida det till tråden. I/O-chefen tillämpar sedan det aktivitets-ID som är associerat med tråden på alla I/O-begärandepaket (IRP:er) som genereras som svar på begäran.