Funzione di callback WMIDPREQUEST (evntrace.h)
Un provider di eventi basato su RegisterTraceGuids ("classico") implementa questa funzione per ricevere o disabilitare le richieste di notifica dai controller.
Il tipo WMIDPREQUEST definisce un puntatore a questa funzione di callback. ControlCallback è un segnaposto per il nome della funzione definita dall'applicazione.
Sintassi
WMIDPREQUEST Wmidprequest;
ULONG Wmidprequest(
[in] WMIDPREQUESTCODE RequestCode,
PVOID RequestContext,
ULONG *BufferSize,
[in] PVOID Buffer
)
{...}
Parametri
[in] RequestCode
Codice della richiesta. Si tratta di uno dei valori seguenti.
Valore | Significato |
---|---|
WMI_ENABLE_EVENTS | Abilita il provider o modifica la configurazione del provider. |
WMI_DISABLE_EVENTS | Disabilitazione del provider. |
RequestContext
Contesto definito dal provider. Il provider usa il parametro RequestContext di
RegisterTraceGuids per specificare il contesto.
BufferSize
Riservato per utilizzo interno.
[in] Buffer
Puntatore a una struttura WNODE_HEADER che contiene informazioni sulla sessione di traccia eventi per cui il provider è abilitato o disabilitato.
Valore restituito
È necessario restituire ERROR_SUCCESS se il callback ha esito positivo. Si noti che ETW ignora il valore restituito per questa funzione, tranne quando un controller chiama EnableTrace per abilitare un provider e il provider non ha ancora chiamato RegisterTraceGuids. In questo caso, RegisterTraceGuids restituirà il valore restituito di questo callback se la registrazione ha avuto esito positivo.
Commenti
Questa funzione viene specificata usando la funzione RegisterTraceGuids . Quando il controller chiama la funzione EnableTrace per abilitare , disabilitare o modificare i flag di abilitazione o il livello, ETW chiama questo callback. Il provider abilita o disabilita se stesso in base al valore RequestCode . In genere, il provider usa questo valore per impostare un flag globale per indicare lo stato abilitato.
Il provider definisce l'interpretazione dell'abilitazione o della disabilitazione. In genere, se un provider è abilitato, genera eventi, ma mentre è disabilitato, non lo è.
ETW non passa i flag di abilitazione e abilita il livello passato dal controller alla funzione EnableTrace a questo callback. Per recuperare queste informazioni, chiamare rispettivamente le funzioni GetTraceEnableFlags e GetTraceEnableLevel .
È anche necessario recuperare l'handle di sessione in questo callback per le chiamate future. Per recuperare l'handle di sessione, chiamare la funzione GetTraceLoggerHandle .
La funzione di callback non deve chiamare alcun elemento che potrebbe comportare LoadLibrary (in particolare, qualsiasi elemento che richiede un blocco del caricatore).
Esempio
Per un esempio di implementazione di una funzione ControlCallback , vedere Scrittura di eventi classici.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
Server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | evntrace.h |