EventEnabled-Funktion (evntprov.h)
Bestimmt, ob ein Ereignisanbieter basierend auf dem EVENT_DESCRIPTOR des Ereignisses ein bestimmtes Ereignis generieren soll.
Gibt FALSE zurück, wenn ETW schnell feststellen kann, dass keine Sitzung auf ein angegebenes Ereignis des angegebenen Anbieters lauscht. Gibt andernfalls TRUE zurück.
Syntax
BOOLEAN EVNTAPI EventEnabled(
[in] REGHANDLE RegHandle,
[in] PCEVENT_DESCRIPTOR EventDescriptor
);
Parameter
[in] RegHandle
Registrierungshandle des Anbieters. Das Handle stammt aus EventRegister.
Wenn RegHandleNULL ist, gibt EventEnabledFALSE zurück.
[in] EventDescriptor
EVENT_DESCRIPTOR , der Informationen bereitstellt, die verwendet werden, um zu bestimmen, ob das Ereignis aktiviert ist. Dies schließt die Ebene (Schweregrad) und das Schlüsselwort (Kategorien) des Ereignisses ein.
Rückgabewert
Gibt FALSE zurück, wenn der Anbieter das Generieren des Ereignisses überspringen soll, d. h. gibt FALSE zurück, wenn ETW schnell feststellen kann, dass keine Ereignissammlungssitzung ein Ereignis des angegebenen Anbieters mit dem angegebenen Deskriptor aufzeichnen würde. Andernfalls wird TRUE zurückgegeben, was angibt, dass der Anbieter das Ereignis generieren soll.
Hinweise
Diese API bietet eine einfache Möglichkeit, anhand des Anbieterhandles und des Ereignisdeskriptors zu bestimmen, ob ein Ereignis aktiviert ist (d. h. ob Ereignisconsumersitzungen am Empfang des Ereignisses interessiert sind).
Hinweis
Diese API führt einen konservativen Schnelltest durch. Es ist möglich, dass diese API true in bestimmten Fällen zurückgibt, in denen eine nachfolgende eingehende Filterung feststellen würde, dass keine Sitzungen das Ereignis aufzeichnen müssen.
Diese API bietet Funktionen, die der von EventProviderEnabled bereitgestellten Funktionalität ähneln. Wenn ein Anbieter Zugriff auf die vollständigen EVENT_DESCRIPTOR eines Ereignisses hat, sollte der Anbieter EventEnabled verwenden. Wenn ein Anbieter nur Zugriff auf die Ebene und das Schlüsselwort des Ereignisses hat, sollte der Anbieter EventProviderEnabled verwenden.
Die meisten Ereignisanbieter rufen EventEnabled nicht direkt auf:
- Die EventWrite-APIs enthalten einen eigenen EventEnabled-Test und geben sofort zurück, wenn das Ereignis nicht aktiviert ist.
- Die meisten ETW-Anbieter verwenden ein ETW-Framework (z. B. Manifeste oder TraceLogging), anstatt EventWrite oder EventEnabled direkt aufzurufen. ETW-Frameworks stellen in der Regel eine eigene ereignisfähige API bereit, die anstelle von EventEnabled verwendet werden sollte.
- ETW-Frameworkimplementierungen überprüfen in der Regel ihren eigenen Anbieterstatus, anstatt EventEnabled aufzurufen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | evntprov.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |