Condividi tramite


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

Vedi anche

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER