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".) |