WMIDPREQUEST-Rückruffunktion (evntrace.h)

Ein RegisterTraceGuids-basierter ("Classic")-Ereignisanbieter implementiert diese Funktion, um Benachrichtigungsanforderungen von Controllern zu empfangen oder zu deaktivieren.

Der WMIDPREQUEST-Typ definiert einen Zeiger auf diese Rückruffunktion. ControlCallback ist ein Platzhalter für den anwendungsdefinierte Funktionsnamen.

Syntax

WMIDPREQUEST Wmidprequest;

ULONG Wmidprequest(
  [in] WMIDPREQUESTCODE RequestCode,
       PVOID RequestContext,
       ULONG *BufferSize,
  [in] PVOID Buffer
)
{...}

Parameter

[in] RequestCode

Anforderungscode. Dies ist einer der folgenden Werte.

Wert Bedeutung
WMI_ENABLE_EVENTS Aktiviert die Anbieter- oder Änderungsanbieterkonfiguration.
WMI_DISABLE_EVENTS Deaktiviert den Anbieter.

RequestContext

Vom Anbieter definierter Kontext. Der Anbieter verwendet den RequestContext-Parameter von
RegisterTraceGuids , um den Kontext anzugeben.

BufferSize

Für die interne Verwendung reserviert.

[in] Buffer

Zeiger auf eine WNODE_HEADER Struktur, die Informationen zur Ereignisablaufverfolgungssitzung enthält, für die der Anbieter aktiviert oder deaktiviert wird.

Rückgabewert

Sie sollten ERROR_SUCCESS zurückgeben, wenn der Rückruf erfolgreich ist. Beachten Sie, dass ETW den Rückgabewert für diese Funktion ignoriert, außer wenn ein Controller EnableTrace aufruft , um einen Anbieter zu aktivieren, und der Anbieter noch nicht RegisterTraceGuids aufgerufen hat. In diesem Fall gibt RegisterTraceGuids den Rückgabewert dieses Rückrufs zurück, wenn die Registrierung erfolgreich war.

Hinweise

Diese Funktion wird mithilfe der Funktion RegisterTraceGuids angegeben. Wenn der Controller die EnableTrace-Funktion aufruft , um die Aktivierungsflags oder -ebene zu aktivieren, zu deaktivieren oder zu ändern, ruft ETW diesen Rückruf auf. Der Anbieter aktiviert oder deaktiviert sich selbst basierend auf dem RequestCode-Wert . In der Regel verwendet der Anbieter diesen Wert, um ein globales Flag festzulegen, um den aktivierten Status anzugeben.

Der Anbieter definiert seine Interpretation, dass aktiviert oder deaktiviert wird. Wenn ein Anbieter aktiviert ist, generiert er im Allgemeinen Ereignisse, aber obwohl er deaktiviert ist, ist dies nicht der Fall.

ETW übergibt nicht die Aktivierungsflags und die Aktivierungsebene, die der Controller an die EnableTrace-Funktion an diesen Rückruf übergibt. Rufen Sie zum Abrufen dieser Informationen die Funktionen GetTraceEnableFlags bzw . GetTraceEnableLevel auf.

Sie müssen auch das Sitzungshandle in diesem Rückruf für zukünftige Aufrufe abrufen. Um das Sitzungshandle abzurufen, rufen Sie die GetTraceLoggerHandle-Funktion auf.

Ihre Rückruffunktion darf keine Elemente aufrufen, die loadLibrary verursachen können (genauer gesagt, alles, was eine Ladeprogrammsperre erfordert).

Beispiele

Eine Beispielimplementierung einer ControlCallback-Funktion finden Sie unter Schreiben klassischer Ereignisse.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile evntrace.h

Weitere Informationen

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER