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.
WMIDPREQUEST Wmidprequest;
ULONG Wmidprequest(
[in] WMIDPREQUESTCODE RequestCode,
PVOID RequestContext,
ULONG *BufferSize,
[in] PVOID Buffer
)
{...}
[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.
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.
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).
Eine Beispielimplementierung einer ControlCallback-Funktion finden Sie unter Schreiben klassischer Ereignisse.
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 |