Udostępnij przez


Używanie identyfikatorów działań

W wersji 1.11 lub nowszej sterowniki UMDF mogą ustawiać i pobierać identyfikatory działań. Identyfikatory aktywności umożliwiają skojarzenie wielu żądań we/wy, dzięki czemu można je śledzić przy użyciu śledzenia zdarzeń systemu Windows (ETW). W tym temacie opisano niektóre możliwe scenariusze, w których sterownik może używać identyfikatorów działań.

Kojarzenie nowych żądań z istniejącym żądaniem

W funkcji obsługi we/wy sterownika możesz utworzyć wiele żądań I/O struktury jako rezultat przychodzącego żądania. Sterownik uzyskuje identyfikator działania z oryginalnego żądania i ustawia go w nowych żądaniach, wywołując WdfRequestRetrieveActivityId i WdfRequestSetActivityId.

Aby zapoznać się z przykładem kodu, zobacz WdfRequestRetrieveActivityId.

Kojarzenie nowych żądań z istniejącym wątkiem

Sterownik może utworzyć nowe żądanie we/wy w wątku innym niż wątek wysyłania we/wy lub w elemencie roboczym. Identyfikator działania dla takiego żądania można ustawić z dowolnego odpowiedniego żądania lub przy użyciu identyfikatora działania skojarzonego z wątkiem wysyłania we/wy. Sterownik może pobrać identyfikator działania skojarzony z bieżącym wątkiem, wywołując EventActivityIdControl, a następnie wywołując WdfRequestSetActivityId, aby ustawić identyfikator dla każdego nowego żądania we/wy.

Jeśli sterownik wywołuje interfejs API Win32 w celu wysłania żądania we/wy, może pobrać identyfikator działania z oryginalnego żądania i rozpropagować go do wątku. Menedżer we/wy stosuje następnie identyfikator działania skojarzony z wątkiem do dowolnych pakietów żądań we/wy (IRP) generowanych w odpowiedzi na żądanie.