Partager via


Création d’un fichier de régions d’intérêt

Un fichier Régions d’intérêt est un fichier XML valide qui contient les nœuds suivants :

  • InstrumentationManifest

  • Instrumentation

  • Régions

  • RegionsRoot, un conteneur pour toutes les régions définies

  • Un ou plusieurs nœuds Région

Notes

Dans la définition d’une région, l’attribut de version dans la déclaration XML, tel que version='1.0', est facultatif.

L’exemple suivant est un fichier régions d’intérêt complet qui définit une région simple. Des explications pour les attributs et les nœuds dans Region sont décrites après l’exemple.

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<?Copyright (c) Microsoft Corporation. All rights reserved.?>
<InstrumentationManifest>
   <Instrumentation>
      <Regions>
         <RegionRoot Guid="{EFA7A927-BAE3-48F6-92E1-000000000000}"
                     Name="Sample Region File Root"
                     FriendlyName="Root">
            <Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
                    Name="FastStartup-Suspend-UserSession-Shutdown"
                    FriendlyName="User Session Shutdown">
               <Start>
                  <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
               </Start>
               <Stop>
                  <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
               </Stop>
            </Region>
         </RegionRoot>
      </Regions>
   </Instrumentation>
</InstrumentationManifest>

Définition d’une région

Une définition de région contient les attributs suivants dans le nœud Région :

  • GUID (obligatoire), guid pour la région.

  • Nom (obligatoire), nom unique pour la région. Un format suggéré pour Name est Root-GrandparentName-ParentName-RegionName.

  • FriendlyName (facultatif), autre nom pour la région.

Types de région

Vous pouvez créer les types de régions suivants en fonction de la façon dont elles démarrent et s’arrêtent :

Régions basées sur des événements

Le type de région le plus courant est celui dont les points de départ et d’arrêt sont définis par des événements.

Pour spécifier un événement comme point de départ ou d’arrêt, vous devez fournir les attributs suivants :

  • Provider, un GUID qui spécifie l’ID de fournisseur pour l’événement.

  • Id, un short non signé qui spécifie l’ID de l’événement.

  • Version, char non signé qui spécifie la version de l’événement.

En outre, vous pouvez affiner votre définition en ajoutant un ou plusieurs nœuds PayloadIdentifier . Ces balises contiennent deux attributs de chaîne, FieldName et FieldValue, qui spécifient un champ que l’événement doit contenir. Les balises PayloadIdentifier sont décrites plus en détail ci-dessous dans Utilisation des champs de charge utile pour identifier les événements.

Exemples

Voici un exemple de base pour ce type de région :

<Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
        Name="FastStartup-Suspend-UserSession-Shutdown"
        FriendlyName="User Session Shutdown">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
   </Start>
   <Stop>
      <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
   </Stop>
</Region>

Dans l’exemple suivant, la région se termine uniquement lorsque l’événement spécifié contient un champ nommé StartOrStop avec la valeur :Stop

<Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
        Name="FastStartup-Suspend-UserSession-Shutdown"
        FriendlyName="User Session Shutdown">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
   </Start>
   <Stop>
      <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
      <PayloadIdentifier FieldName="StartOrStop" FieldValue="Stop" />
   </Stop>
</Region>

Régions basées sur la durée

De nombreux événements ETW sont définis comme un événement d’arrêt unique avec un champ de charge utile de durée. Nous pouvons calculer le point de départ en soustrayant la durée de l’heure de l’événement d’arrêt.

La balise Duration peut être utilisée dans une balise Start ou Stop pour spécifier un champ de charge utile à partir duquel récupérer des informations de durée. Si vous définissez une durée pour le point de départ, la durée est soustraite du point d’arrêt. De même, si vous définissez une durée pour le point d’arrêt, la durée est ajoutée au point de départ.

Le nœud Durée peut avoir les attributs suivants :

  • Provider, un GUID qui spécifie l’ID de fournisseur pour l’événement qui contient le champ de charge utile.

  • Id, un short non signé qui spécifie l’ID de l’événement qui contient le champ de charge utile.

  • Version, char non signé qui spécifie la version de l’événement qui contient le champ de charge utile.

  • Duration, chaîne qui spécifie le nom du champ de charge utile.

  • Multiplicateur. WPA nécessite que la durée soit en nanosecondes. Le multiplicateur par défaut est 1000000 (un million), ce qui convertit les millisecondes en nanosecondes.

Si vous définissez une durée pour le point de départ, la durée est soustraite du point d’arrêt. De même, si vous définissez une durée pour le point d’arrêt, la durée est ajoutée au point de départ.

 Exemple

L’exemple suivant définit une région qui s’arrête au démarrage d’une autre région. Pour calculer le point de départ, nous soustrons une durée de notre point d’arrêt. La durée se trouve dans le champ de charge utile HiberHiberFileTime. Nous multiplions ensuite la durée par 1 000 000 pour la convertir en nanosecondes et la soustraire du point d’arrêt.

<Region Guid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}"
   Name="FastStartup-Suspend-WriteHiberFile"
   FriendlyName="Subscribers for Create Session">
   <Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
         Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers-Child"
         FriendlyName="Hiberfile Write">
      <Start>
         <Duration Provider="{331c3b3a-2005-44c2-ac53-77220c37d6b4}" 
                   Id="117"
                   Version="0"
                   Duration="HiberHiberFileTime"
                   Multiplier="1000000" />
      </Start>
      <Stop>
         <Region RegionGuid="{EC1BB2D9-4AA8-4d82-84AA-6042FF4CFBE3}" />
      </Stop>
   </Region>
</Region>

Régions basées sur d’autres régions

Vous pouvez définir une région dont les points de départ et d’arrêt sont définis par d’autres régions à l’aide d’un nœud Région dans le nœud Start ou Stop . Ce nœud Region a un attribut obligatoire, RegionGuid, qui spécifie le GUID de la région cible.

Par défaut, une région dont le point de départ est basé sur une autre région démarre lorsque la région de point de départ s’arrête. De même, une région dont le point d’arrêt est basé sur une autre région s’arrête au démarrage de la région du point d’arrêt. Vous pouvez remplacer ce comportement par défaut en ajoutant un attribut facultatif, Point de terminaison, au nœud Région. Le point deStart terminaison peut avoir la valeur ou Stop et spécifie le point de terminaison de la région à utiliser pour l’événement de démarrage ou d’arrêt.

 Exemple

La définition de région suivante contient des points de départ et d’arrêt définis par d’autres régions :

<Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
        Name="FastStartup-Suspend-HiberInitTime"
        FriendlyName="Hiberfile Initialization">
   <Start>
      <Region RegionGuid="{5E81D74C-0CCC-43f9-8119-953F827BCD12}" />
   </Start>
   <Stop>
      <Region RegionGuid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}" />
   </Stop>
</Region>

Régions qui sont des conteneurs d’autres régions

Les régions qui contiennent d’autres régions sont appelées conteneurs. Les conteneurs démarrent lorsque la première instance d’une région autonome démarre et s’arrêtent lorsque le dernier instance s’arrête. Ces régions n’ont pas d’autres attributs.

RegionRoot est un conteneur pour toutes les régions que vous définissez. Par conséquent, RegionRoot démarre lorsque la première instance d’une région démarre et s’arrête lorsque la dernière instance d’une région s’arrête.

Pour définir une région de conteneur, définissez simplement une région sans point de départ ni point d’arrêt.

 Exemple

Dans l’exemple ci-dessous, Abonnés pour Créer une session est un conteneur pour l’enfant des abonnés de Créer une session. Notez que les Abonnés pour Créer une session n’ont pas de point de départ ou de point d’arrêt. Il démarre lorsque la première instance d’une région enfant démarre et s’arrête lorsque la dernière instance d’une région enfant s’arrête.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CC70DEAC06F}"
   Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
   FriendlyName="Subscribers for Create Session">
   <Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
           Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers-Child"
           FriendlyName="Child of Subscribers for Create Session">
      <Start>
         <Region RegionGuid="{5E81D74C-0CCC-43f9-8119-953F827BCD12}" />
      </Start>
      <Stop>
         <Region RegionGuid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}" 
                 Endpoint="Stop" />
      </Stop>
   </Region>
</Region>

Utilisation des champs de charge utile pour identifier les événements

Souvent, les propriétés de l’ID d’événement (ID de processus, ID de thread et ID d’activité) ne sont pas suffisantes pour identifier des scénarios spécifiques. Par exemple, lorsqu’un service démarre, un événement générique est déclenché et peut ne pas identifier le service qui a démarré. Dans ce cas, vous devez vous appuyer sur les champs de charge utile pour obtenir des informations supplémentaires. Dans ce cas, l’un des champs supplémentaires doit inclure le nom du service. Vous pouvez utiliser ces informations pour spécifier davantage les points de départ et d’arrêt de la région.

Pour utiliser des champs de charge utile comme identificateurs d’événement supplémentaires, ajoutez un ou plusieurs nœuds PayloadIdentifier à un nœud Start ou Stop .

Le nœud PayloadIdentifier a les attributs suivants :

  • FieldName (obligatoire), nom du champ de charge utile.

  • FieldValue (obligatoire), la valeur de charge utile.

  • FieldValueRelationship (facultatif). Utilisez IsEqual pour spécifier que l’événement doit contenir la valeur de charge utile. Utilisez DoesNotContain pour spécifier que l’événement ne doit pas contenir la valeur de charge utile. Si cet attribut n’est pas spécifié, la valeur par défaut est IsEqual.

Notes

Les champs de charge utile respectent la casse et la définition XML doit correspondre entièrement à la valeur de charge utile. Par exemple, si un champ de charge utile a la valeur , la définition de 00000région doit également spécifier 00000 comme valeur de charge utile.

 Exemple

L’exemple suivant contient des nœuds PayloadIdentifier pour le point de départ et le point d’arrêt :

<Region Guid="{AB719FB1-D863-4305-AE8E-F21281899A85}"
        Name="FastStartup-ConsoleSessionDisconnect"
        FriendlyName="Console Session Disconnect">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="801" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="8" />
      <PayloadIdentifier FieldName="Key" FieldValue="00000" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="802" Version="0" />
      <PayloadIdentifier FieldName="Event"
                         FieldValue="20"
                         FieldValueRelationship="DoesNotContain" />
   </Stop>
</Region>

Événements de correspondance pour les régions

WPA met en correspondance les événements de début avec les événements d’arrêt pour former des régions dans un processus appelé correspondance d’événements. Au niveau de l’événement, WPA tente de mettre en correspondance un événement de démarrage ou d’arrêt unique en fonction de son ID de fournisseur, de son ID d’événement, de sa version et de tous les champs de charge utile supplémentaires spécifiés.

La correspondance peut également être étendue au niveau de la région, où des critères peuvent être spécifiés qui doivent être respectés par les points de départ et d’arrêt. Au niveau de la région, vous pouvez exiger que les deux points aient des ID de thread, des ID de processus et des ID d’activité correspondants. En outre, vous pouvez également définir des critères de charge utile au niveau de la région.

Vous pouvez utiliser la correspondance au niveau de la région en incluant un nœud Match à l’intérieur du nœud Région . Le nœud Match contient un nœud enfant, Event, qui peut avoir n’importe quelle combinaison des attributs suivants :

  • TID="true" : exiger des ID de thread correspondants

  • PID="true" : exiger des ID de processus de correspondance

  • AID="true" – exiger des ID d’activité correspondants

Le nœud Event peut avoir un nœud enfant charge utile facultatif qui contient un attribut FieldName . Ce nœud nécessite que les nœuds de départ et d’arrêt contiennent des valeurs de charge utile correspondantes pour le FieldName spécifié.

Le nœud Payload peut également contenir un attribut facultatif , TargetFieldName. Si cet attribut est spécifié, FieldName correspond à un champ de charge utile uniquement dans le nœud de départ, tandis que TargetFieldName correspond à un champ de charge utile dans le nœud d’arrêt.

 Exemple

L’exemple suivant forme une région lorsque l’événement de démarrage contient un champ de charge utile, SubscriberName, dont la valeur correspond à celle d’un champ de charge utile, Client, dans le nœud d’arrêt. Les événements de démarrage et d’arrêt doivent également avoir des ID de thread correspondants.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CCC70DEAC06F}"
        Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
        FriendlyName="Subscribers for Create Session">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Stop>
   <Match>
      <Event TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Event>
   </Match>
</Region>

Filtrage d’une région en fonction d’une condition

WPA peut inclure ou exclure une région en fonction d’une condition, ou d’un déclencheur, qui peut être un événement ou une autre région. Le déclencheur est spécifié dans un élément Filter , et la région qui contient Filter est la cible.

Si le déclencheur est une région, filter doit contenir l’ID de région.

Si le déclencheur est un événement, Filter doit contenir un élément Event avec le ProviderId du fournisseur ETW et un ou plusieurs des attributs suivants : Id, Version, OpCode et Type.

L’ID et la version sont décrits plus haut dans Types de région. OpCode est la valeur que vous choisissez. Type spécifie le mode de filtrage de la région ciblée, y compris ou en l’excluant en fonction des conditions décrites dans le tableau suivant.

Type de filtre Description
Sortie Excluez la région cible lorsque l’événement ou la région de déclenchement est trouvé.
Avant-poste Excluez la région cible lorsque la cible s’est produite après l’événement ou la région de déclenchement le plus récent.
OutPrev Excluez la région cible lorsque la cible s’est produite avant le premier événement ou région de déclenchement.
Dans Incluez la région cible uniquement lorsque l’événement ou la région de déclenchement est trouvé.
InPost Incluez la région cible uniquement lorsqu’elle s’est produite après l’événement ou la région de déclenchement le plus récent.
InPrev Incluez la région cible uniquement lorsqu’elle s’est produite avant le premier événement ou la région de déclenchement.

Relations parent-enfant

Vous pouvez définir une région dans une autre pour créer une relation parent-enfant. Pour qu’une région soit parente, elle doit avoir une heure de début antérieure ou égale à l’heure de début de la région enfant. Il doit également avoir une heure d’arrêt qui est postérieure ou égale à l’heure d’arrêt de la région enfant. Si ces conditions ne sont pas remplies, une relation parent-enfant ne peut pas être formée.

Pour spécifier des critères supplémentaires pour une région parente, utilisez le nœud Parent dans un nœud Match . Le nœud parent a les mêmes attributs et nœuds enfants que le nœud Événement utilisé dans la correspondance au niveau de la région. Vous pouvez spécifier que les régions parent et enfant doivent avoir le même ID de thread, l’ID de processus, l’ID d’activité et le même nombre de champs de charge utile correspondants.

Lorsque vous utilisez des champs de charge utile, si vous spécifiez uniquement l’attribut FieldName , les régions parent et enfant doivent avoir des valeurs de charge utile correspondantes pour ce champ. Si vous spécifiez également l’attribut TargetFieldName , l’attribut TargetFieldName s’applique au parent ainsi qu’à l’enfant, ce qui signifie que la région enfant doit avoir une valeur de charge utile pour le champ FieldName qui correspond à la valeur de charge utile du champ TargetFieldName dans le parent.

Si un enfant a plusieurs parents potentiels, le parent dont l’heure de départ est la plus ancienne est choisi.

 Exemple

L’exemple ci-dessous définit des critères pour un parent. Le parent doit avoir un ID de thread correspondant, et une valeur de charge utile pour le SubscriberName champ dans l’enfant doit correspondre à une valeur pour le Client champ dans le parent.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CC70DEAC06F}"
        Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
        FriendlyName="Subscribers for Create Session">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Stop>
   <Match>
      <Event TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Event>
      <Parent TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Parent>
   </Match>
</Region>

Régions à imbrication automatique

L’imbrication automatique est une fonctionnalité facultative qui optimise les relations parent-enfant.

Une région d’imbrication automatique est une région dont la durée est entièrement contenue dans la durée d’une région frère. Cette région devient en fait un enfant de son frère de longue durée.

Par exemple, supposons que l’imbrication automatique soit activée pour les régions suivantes :

  • Région parente A

  • Région enfant B1, qui commence à l’heure 0 et s’arrête à l’heure 6

  • Région enfant B2, qui commence à l’heure 2 et s’arrête à l’heure 5

  • Région enfant B3, qui commence à l’heure 3 et s’arrête à l’heure 4

Dans cet exemple, B2 devient une région enfant de B1 et B3 une région enfant de B2. Lors de la création de ce type de relation parent-enfant, le parent dont l’heure de début est la plus proche de l’heure de début de l’enfant est choisi.

Pour activer l’imbrication automatique, ajoutez un nœud SelfNest à l’intérieur du nœud Match .

Le nœud SelfNest n’a aucun paramètre requis. Toutefois, vous pouvez utiliser les mêmes paramètres de correspondance que pour créer des relations parent-enfant ordinaires. Pour plus d’informations, consultez Relations parent-enfant plus haut dans cette rubrique.

Exemples

L’exemple suivant définit une balise Match qui appelle simplement l’auto-imbrication :

<Match>
   <SelfNest />
</Match>

L’exemple suivant définit un scénario d’imbrication automatique plus complexe qui nécessite des ID de thread et des champs de charge utile correspondants :

<Match>
   <SelfNest TID="true">
      <Payload FieldName="SubscriberName" />
   </SelfNest>
</Match>

Noms d’instance

Vous pouvez attribuer un nom unique à chaque instance d’une région correspondante à l’aide du nœud Naming. Le nommage est utile lorsque vous avez un grand nombre d’instances de la même région ou lorsque vous devez classer des régions en fonction d’autres critères. Les noms d’instance peuvent être basés sur des champs de charge utile ou sur des relations avec d’autres régions.

Les instances peuvent être nommées en fonction des valeurs de charge utile à l’aide du nœud PayloadBased dans un nœud De nommage . Le nœud PayloadBased a un attribut obligatoire, NameField, qui spécifie le champ de charge utile dont vous souhaitez utiliser les valeurs comme noms instance. Ces champs de charge utile peuvent se trouver au point de départ ou d’arrêt de la région.

Voici un exemple de région avec un nœud d’affectation de noms basé sur la charge utile :

<Region Guid="{9261872F-D3A7-4d80-BDE3-8479CC920639}"
        Name="FastStartup-Suspend-Winlogon-EndShell-CallSubscriber"
        FriendlyName="Call Subscriber for End Shell">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="811" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="13" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="812" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="13" />
   </Stop>
   <Match>
      <Event PID="true" />
      <Parent PID="true" />
   </Match>
   <Naming>
      <PayloadBased NameField="SubscriberName" />
   </Naming>
</Region>

Dans l’exemple précédent, le nœud Naming indique que l’événement de démarrage ou d’arrêt contient un champ de charge utile nommé SubscriberName. Pour chaque instance de la région créée, le nom instance est la valeur de charge utile associée.

Notes

Lorsque vous nommez des instances de région, WPA vérifie d’abord le champ de charge utile correspondant à l’événement de départ. Si l’un d’eux est introuvable, WPA recherche le champ de charge utile dans l’événement d’arrêt. Si aucune correspondance n’est trouvée dans l’un ou l’autre des cas, une erreur est imprimée dans la console.

Parfois, les informations contenues dans la charge utile ne sont pas les seules informations que nous voulons. Par exemple, si les informations contenues dans la charge utile contenues sont un ID d’appareil, nous pouvons mapper ces informations à une description et un nom d’appareil. Les attributs type pris en charge sont les suivants :

  • Device, associe un nom et une description

  • GUID, associe le GUID à la région

  • CLSID, associe un nom de classe à l’ID de classe

  • PID, associe le nom du processus à la région

<Naming>
   <PayloadBased NameField="SubscriberName" Type="Device" />
</Naming>

S’il est possible que la valeur de charge utile se trouve dans les points de départ et d’arrêt, vous pouvez utiliser l’attribut InstanceEndpoint facultatif pour spécifier le point à utiliser. Les valeurs possibles pour InstanceEndpoint sont Start et Stop.

<Naming>
   <PayloadBased NameField="SubscriberName" InstanceEndpoint="Start" />
</Naming>

Vous pouvez également nommer une région en fonction des relations avec d’autres régions. Pour l’associer à une autre région, ajoutez un nœud basé sur une région à un nœud Naming . Le nœud RegionBased a quatre attributs obligatoires :

  • RegionGuid, guid de la région associée.

  • Relation, valeur conditionnelle qui décrit la relation entre la région que vous définissez et la région à laquelle vous associez. Actuellement, la seule relation prise en charge est IsPresent, ce qui signifie que la condition est true si la région associée se trouve quelque part dans la trace.

  • IfRelationTrue, valeur de chaîne utilisée comme nom instance si la relation décrite par Relation a la valeur true.

  • IfRelationFalse, valeur de chaîne utilisée comme nom instance si la relation décrite par Relation est false.

L’exemple suivant définit une région qui a un nom basé sur une région. Si une région avec un GUID correspondant se trouve quelque part dans la trace, chaque instance de Launch est nommé Warm. Sinon, chaque instance est nommé Cold.

<Region Guid="{C99EFA90-F645-4A24-9576-740351171BD0}"
        Name="WinStoreAppActivationDuration"
        FriendlyName="Launch">
   <Start>
      <Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5901" Version="0" />
      <PayloadIdentifier FieldName="SqmableContractID" FieldValue="Windows.Launch" />
   </Start>
   <Stop>
      <Event Provider="{315a8872-923e-43a2-9889-33cd4754bf64}" Id="5902" Version="0" />
      <PayloadIdentifier FieldName="SqmableContractID" FieldValue="Windows.Launch" />
   </Stop>
   <Match>
      <Event PID="true" />
   </Match>
   <Naming>
      <RegionBased RegionGuid="{1539A93E-129C-4602-A011-431E7F73A353}" Relation="IsPresent" IfRelationTrue="Warm" IfRelationFalse="Cold" />
   </Naming>
</Region>

Notes

Vous pouvez voir instance noms dans WPA en pointant la souris sur une région instance dans le graphique Régions d’intérêt.

Métadonnées

Vous pouvez ajouter des informations supplémentaires à une définition de région sous forme de métadonnées, contenues dans un nœud Métadonnées . Par exemple, vous pouvez inclure des informations dans les métadonnées qui expliquent les critères de région afin qu’un autre utilisateur puisse plus facilement comprendre l’objectif de la région. Les métadonnées sont simplement des données supplémentaires. Elles n’affectent pas le traitement des régions.

WPA ajoute ces métadonnées à chaque région instance dans l’affichage graphique du graphique Régions d’intérêt. Pour afficher les métadonnées des événements correspondants dans WPA, il vous suffit de développer la région dans l’affichage graphique et de faire défiler jusqu’aux métadonnées souhaitées. WPA affecte un numéro unique aux métadonnées, et le nom du nœud s’affiche sous forme d’informations de colonne.

 Exemple

L’exemple suivant inclut un nœud métadonnées dans la définition de région :

<Region Guid="{F466EE67-192C-4772-B13D-052CCD2D70B3}"
        Name="FastStartup-Suspend-Winlogon-Logoff-Subscribers"
        FriendlyName="Subscribers for Logoff">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="3" />
   </Start>
   <Stop>
      <Event Provider="{db39b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="3" />
   </Stop>
   <Match>
      <Event>
         <Payload FieldName="Event" />
      </Event>
   </Match>
   <Naming>
      <PayloadBased NameField="SubscriberName" />
   </Naming>
   <Metadata>
      <FAS.TestNode>yes</FAS.TestNode>
   </Metadata>
</Region>

Régions d’intérêt

Fonctionnalités WPA