Freigeben über


EtwWriteString-Funktion (wdm.h)

Die EventWriteString-Funktion ist eine Ablaufverfolgungsfunktion, die Sie verwenden können, wenn keine komplexen Daten erforderlich sind. Diese Funktion ähnelt einer Debugdruckanweisung.

Syntax

NTSTATUS EtwWriteString(
  [in]           REGHANDLE RegHandle,
  [in]           UCHAR     Level,
  [in]           ULONGLONG Keyword,
  [in, optional] LPCGUID   ActivityId,
  [in]           PCWSTR    String
);

Parameter

[in] RegHandle

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

[in] Level

Die Ebene, auf der das Ereignis aktiv ist.

[in] Keyword

Die Schlüsselwort (keyword) für das Ereignis. Eine Schlüsselwort (keyword) ist eine Bitmaske, die allgemeine Aussagen zur Kategorie des Ereignisses oder Fehlers macht. Da die Schlüsselwort (keyword) eine Bitmaske ist, können Sie mehrere Schlüsselwort (keyword) auf ein einzelnes Ereignis anwenden. Sie können die Schlüsselwörter und Bitpositionen definieren oder Windows-Standardschlüsselwörter verwenden, oder Sie können eine Kombination aus Ihren eigenen Schlüsselwörtern und den Windows-Schlüsselwörtern verwenden.

[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] String

Eine NULL-beendete Zeichenfolge (WCHAR).

Rückgabewert

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

Hinweise

Da die von der EventWriteString-Funktion erzeugte Zeichenfolge nicht lokalisierbar ist, wird diese Funktion nicht für die Verwendung im Produktionscode empfohlen. Diese Funktion sollte nicht verwendet werden, um hoch sichtbare Ereignisse zu protokollieren.

Sie können EtwWriteString in jedem IRQL aufrufen. Wenn IRQL jedoch größer als APC_LEVEL ist, dürfen daten, die an die Funktionen EtwWrite, EtwWriteEx, EtwWriteString und EtwWriteTransfer übergeben werden, 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, EtwWriteEx, EtwWriteString und EtwWriteTransfer übergeben werden, müssen sich im Speicher des Systemspeichers befinden, unabhängig davon, was irQL ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Windows-Versionen.
Zielplattform Universell
Header wdm.h (include Wdm.h, Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene (siehe Abschnitt "Kommentare".)

Weitere Informationen

EtwWrite

EtwWriteEx

EtwWriteTransfer