Share via


structure TRACE_PERIODIC_CAPTURE_STATE_INFO (evntrace.h)

Utilisé avec TraceQueryInformation et TraceSetInformation pour obtenir ou définir des informations relatives à un état de capture périodique.

Syntaxe

typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
  ULONG  CaptureStateFrequencyInSeconds;
  USHORT ProviderCount;
  USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;

Membres

CaptureStateFrequencyInSeconds

Fréquence des captures d’état en secondes.

ProviderCount

Nombre de fournisseurs.

Reserved

Réservé pour un usage futur.

Notes

L’état de capture périodique permet d’envoyer régulièrement des notifications d’état de capture aux fournisseurs. Lorsque cette option est activée, les notifications sont envoyées uniquement aux inscriptions de fournisseur qui ont été précédemment activées pour la session active. Chaque fournisseur peut définir sa propre réponse (le cas échéant) à une notification. Notez que les événements enregistrés par le fournisseur en réponse à une notification sont envoyés à chaque session ETW sur laquelle le fournisseur est activé, comme un état de capture demandé manuellement.

Pour utiliser l’état de capture périodique :

  1. Allouez une mémoire tampon de type TRACE_PERIODIC_CAPTURE_STATE_INFO. La taille de la mémoire tampon doit être : sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)), où x est le nombre de fournisseurs que vous souhaitez activer.
  2. Appelez TraceQueryInformation à l’aide de TracePeriodicCaptureStateInfo pour l’énumération TRACE_INFO_CLASS . Transmettez la mémoire tampon et sa taille en tant que paramètres TraceInformation et InformationLength de TraceQueryInformation.
  3. Définissez CaptureStateFrequencyInSeconds deTRACE_PERIODIC_CAPTURE_STATE_INFO sur la fréquence minimale prise en charge par la version de Windows. Cette valeur peut changer à l’avenir, de sorte que le codage dur n’est pas recommandé. Si la fréquence est inférieure au minimum, l’appel à TraceSetInformation échoue.
  4. Définissez ProviderCount à partir de TRACE_PERIODIC_CAPTURE_STATE_INFO le nombre d’GUID de fournisseur passés.
  5. Ajoutez les GUID de chaque fournisseur après la fin de la structure TRACE_PERIODIC_CAPTURE_STATE_INFO . Cela utilise l’espace supplémentaire alloué à partir de (x * sizeof(GUID)) à partir de la première étape.
  6. Appelez TraceSetInformation à l’aide de TracePeriodicCaptureStateListInfo à partir de l’énumération TRACE_INFO_CLASS .
  7. Pour désactiver l’état de capture périodique, appelez à nouveau TraceSetInformation avec TracePeriodicCaptureStateListInfo à partir des TRACE_INFO_CLASS, NULL pour traceInformation et 0 comme InformationLength.

Spécifications

   
En-tête evntrace.h