Freigeben über


EtwWriteTransfer-Funktion (wdm.h)

Die EtwWriteTransfer-Funktion markiert ein Ereignis, das zwei Aktivitäten miteinander verknüpft. Dieser Ereignistyp wird als Übertragungsereignis bezeichnet. Ein Übertragungsereignis kann dieselben benutzerdefinierten Daten, dieselben Felder enthalten und unterliegt den gleichen Regeln wie andere Ereignisse.

Syntax

NTSTATUS EtwWriteTransfer(
  [in]           REGHANDLE              RegHandle,
  [in]           PCEVENT_DESCRIPTOR     EventDescriptor,
  [in, optional] LPCGUID                ActivityId,
  [in, optional] LPCGUID                RelatedActivityId,
  [in]           ULONG                  UserDataCount,
  [in, optional] PEVENT_DATA_DESCRIPTOR UserData
);

Parameter

[in] RegHandle

Ein Zeiger auf das Ereignisanbieterregistrierungshandle, das von der EtwRegister-Funktion zurückgegeben wird, wenn die Ereignisanbieterregistrierung erfolgreich ist.

[in] EventDescriptor

Ein Zeiger auf die EVENT_DESCRIPTOR-Struktur.

[in, optional] ActivityId

Der Bezeichner, der die dem Ereignis zugeordnete Aktivität angibt. Die ActivityId bietet eine Möglichkeit zum Gruppieren verwandter Ereignisse und wird in der End-to-End-Ablaufverfolgung verwendet. Dieser Bezeichner ist optional und kann NULL sein.

[in, optional] RelatedActivityId

Der Bezeichner, der die dem Ereignis zugeordnete aktivität angibt. RelatedActivityID bietet eine Möglichkeit zum Gruppieren verwandter Ereignisse und wird in der End-to-End-Ablaufverfolgung verwendet.

[in] UserDataCount

Die Anzahl der Elemente in einem Array von EVENT_DATA_DESCRIPTOR Strukturen.

[in, optional] UserData

Der Zeiger auf das erste Element in einem Array von EVENT_DATA_DESCRIPTOR Strukturen.

Rückgabewert

EtwWriteTransfer gibt STATUS_SUCCESS zurück, wenn das Ereignis erfolgreich veröffentlicht wurde.

Hinweise

Sie können EtwWriteTransfer in jedem IRQL aufrufen. Wenn IRQL jedoch größer als APC_LEVEL ist, dürfen alle an die Funktionen EtwWrite, EtwWriteString und EtwWriteTransfer übergebenen Daten nicht ausgelagert werden können. Das heißt, jede Kernelmodusroutine, die bei IRQL ausgeführt wird, die größer als APC_LEVEL ist, kann nicht auf ausgelagerten Arbeitsspeicher zugreifen. Daten, die an die Funktionen EtwWrite, EtwWriteString, EtwWriteTransfer übergeben werden, müssen sich im Speicher des Systemspeichers befinden, unabhängig davon, was irQL ist.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (include Wdm.h, Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe; Ntdll.dll
IRQL Beliebige Ebene (siehe Abschnitt "Kommentare")

Weitere Informationen

EtwWrite

EtwWriteString