Criando um arquivo de regiões de interesse
Um arquivo Regions of Interest é um arquivo XML válido que contém os seguintes nós:
InstrumentationManifest
Instrumentação
Regiões
RegionsRoot, um contêiner para todas as regiões definidas
Um ou mais nós de região
Observação
Na definição de uma região, o atributo de versão na declaração XML, como version='1.0'
, é opcional.
O exemplo a seguir é um arquivo de Regiões de Interesse completo que define uma região simples. As explicações para os atributos e nós dentro de Region são descritas após o exemplo.
<?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>
Definindo uma região
Uma definição de região contém os seguintes atributos no nó Região :
Guid (obrigatório), um GUID para a região.
Nome (obrigatório), um nome exclusivo para a região. Um formato sugerido para Nome é
Root-GrandparentName-ParentName-RegionName
.FriendlyName (opcional), um nome alternativo para a região.
Tipos de região
Você pode criar os seguintes tipos de regiões com base em como elas iniciam e param:
- Regiões com base em eventos
- Regiões com base na duração
- Regiões com base em outras regiões
- Regiões que são contêineres de outras regiões
Regiões com base em eventos
O tipo mais comum de região é aquele cujos pontos de partida e parada são definidos por eventos.
Para especificar um evento como o ponto inicial ou de parada, você precisa fornecer os seguintes atributos:
Provedor, um GUID que especifica a ID do provedor para o evento.
Id, um curto sem sinal que especifica a ID do evento.
Version, um char sem sinal que especifica a versão do evento.
Além disso, você pode refinar ainda mais sua definição adicionando um ou mais nós PayloadIdentifier . Essas marcas contêm dois atributos de cadeia de caracteres, FieldName e FieldValue, que especificam um campo que o evento deve conter. As marcas PayloadIdentifier são descritas abaixo em Usando campos de conteúdo para identificar eventos.
Exemplos
Veja a seguir um exemplo básico para esse tipo de região:
<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>
No exemplo a seguir, a região termina somente quando o evento especificado contém um campo chamado StartOrStop
com um valor de 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>
Regiões com base na duração
Muitos eventos ETW são definidos como um único evento de parada com um campo de conteúdo de duração. Podemos calcular o ponto de partida subtraindo a duração da hora do evento de parada.
A marca Duração pode ser usada em uma marca Iniciar ou Parar para especificar um campo de conteúdo do qual obter informações de duração. Se você definir uma duração para o ponto de partida, a duração será subtraída do ponto de interrupção. Da mesma forma, se você definir uma duração para o ponto de parada, a duração será adicionada ao ponto inicial.
O nó Duração pode ter os seguintes atributos:
Provedor, um GUID que especifica a ID do provedor para o evento que contém o campo de conteúdo.
Id, um curto sem sinal que especifica a ID do evento que contém o campo de conteúdo.
Version, um char sem sinal que especifica a versão do evento que contém o campo de conteúdo.
Duração, uma cadeia de caracteres que especifica o nome do campo de conteúdo.
Multiplicador. O WPA requer a duração em nanossegundos. O multiplicador padrão é 10000000 (um milhão), que converterá milissegundos em nanossegundos.
Se você definir uma duração para o ponto de partida, a duração será subtraída do ponto de interrupção. Da mesma forma, se você definir uma duração para o ponto de parada, a duração será adicionada ao ponto inicial.
Exemplo
O exemplo a seguir define uma região que é interrompida quando outra região é iniciada. Para calcular o ponto de partida, subtraímos uma duração do nosso ponto de parada. A duração é encontrada no campo de conteúdo HiberHiberFileTime. Em seguida, multiplicamos a duração por 1.000.000 para convertê-la em nanossegundos e subtraí-la do ponto de parada.
<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>
Regiões com base em outras regiões
Você pode definir uma região cujos pontos de partida e parada são definidos por outras regiões usando um nó Região dentro do nó Iniciar ou Parar . Esse nó Região tem um atributo obrigatório, RegionGuid, que especifica o GUID da região de destino.
Por padrão, uma região cujo ponto de partida é baseado em outra região será iniciada quando a região do ponto de partida for interrompida. Da mesma forma, uma região cujo ponto de parada se baseia em outra região será interrompida quando a região do ponto de interrupção for iniciada. Você pode substituir esse comportamento padrão adicionando um atributo opcional, Ponto de extremidade, ao nó Região.
O ponto de extremidade pode ter um valor de Start
ou Stop
e especifica qual ponto de extremidade da região usar para o evento inicial ou de interrupção.
Exemplo
A definição de região a seguir contém pontos de início e parada definidos por outras regiões:
<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>
Regiões que são contêineres de outras regiões
Regiões que contêm outras regiões são chamadas de contêineres. Os contêineres começam quando a primeira instância de uma região contida é iniciada e param quando a última instância é interrompida. Essas regiões não têm outros atributos.
RegionRoot é um contêiner para todas as regiões que você define. Portanto, RegionRoot começa quando a primeira instância de uma região é iniciada e é interrompida quando a última instância de uma região é interrompida.
Para definir uma região de contêiner, basta definir uma região sem um ponto de partida ou um ponto de interrupção.
Exemplo
No exemplo abaixo, Assinantes para Criar Sessão é um contêiner para Filho de Assinantes de Criar Sessão. Observe que os Assinantes para Criar Sessão não têm um ponto de partida ou ponto de interrupção. Ele será iniciado quando a primeira instância de uma região filho for iniciada e interrompida quando a última instância de uma região filho for interrompida.
<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>
Usando campos de conteúdo para identificar eventos
Muitas vezes, as propriedades da ID do evento (ID do processo, ID do thread e ID da atividade) não são suficientes para identificar cenários específicos. Por exemplo, quando um serviço é iniciado, um evento genérico é acionado que pode não identificar qual serviço foi iniciado. Quando isso ocorre, você deve contar com campos de conteúdo para obter informações adicionais. Nesse caso, um dos campos adicionais deve incluir o nome do serviço. Você pode usar essas informações para especificar ainda mais pontos de início e parada de região.
Para usar campos de conteúdo como identificadores de evento adicionais, adicione um ou mais nós PayloadIdentifier a um nó Iniciar ou Parar .
O nó PayloadIdentifier tem os seguintes atributos:
FieldName (obrigatório), o nome do campo de conteúdo.
FieldValue (obrigatório), o valor da carga.
FieldValueRelationship (opcional). Use IsEqual para especificar que o evento deve conter o valor da carga. Use DoesNotContain para especificar que o evento não deve conter o valor da carga. Se esse atributo não for especificado, o valor padrão será IsEqual.
Observação
Os campos de conteúdo diferenciam maiúsculas de minúsculas e a definição de XML deve corresponder totalmente ao valor da carga. Por exemplo, se um campo de conteúdo tiver um valor igual a , a definição de 00000
região também deverá especificar 00000
como o valor da carga.
Exemplo
O exemplo a seguir contém nós PayloadIdentifier para o ponto inicial e o ponto de interrupção:
<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>
Eventos correspondentes para regiões
O WPA corresponde aos eventos iniciais com a interrupção de eventos para formar regiões em um processo chamado correspondência de eventos. No nível do evento, o WPA tenta corresponder a um único evento inicial ou de parada com base em sua ID do provedor, ID do evento, versão do evento e quaisquer campos de conteúdo especificados adicionais.
A correspondência também pode ser estendida para o nível da região, em que os critérios podem ser especificados que devem ser atendidos pelos pontos inicial e de parada. No nível da região, você pode exigir que ambos os pontos tenham IDs de thread correspondentes, IDs de processo e IDs de atividade. Além disso, você também pode definir critérios de conteúdo no nível da região.
Você pode usar a correspondência no nível da região incluindo um nó De correspondência dentro do nó Região . O nó Match contém um nó filho, Event, que pode ter qualquer combinação dos seguintes atributos:
TID="true"
– exigir IDs de thread correspondentesPID="true"
– exigir IDs de processo correspondentesAID="true"
– exigir IDs de atividade correspondentes
O nó Evento pode ter um nó filho payload opcional que contém um atributo FieldName . Esse nó requer que os nós inicial e de parada contenham valores de conteúdo correspondentes para o FieldName especificado.
Como alternativa, o nó Payload também pode conter um atributo opcional, TargetFieldName. Se esse atributo for especificado, FieldName corresponderá a um campo de carga somente no nó inicial, enquanto TargetFieldName corresponderá a um campo de carga no nó de parada.
Exemplo
O exemplo a seguir forma uma região quando o evento inicial contém um campo de conteúdo, SubscriberName, cujo valor corresponde ao de um campo de carga, Client, no nó de parada. Os eventos de inicialização e interrupção também devem ter IDs de thread correspondentes.
<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>
Filtrar uma região com base em uma condição
O WPA pode incluir ou excluir uma região com base em uma condição ou gatilho, que pode ser um evento ou outra região. O gatilho é especificado em um elemento Filter e a região que contém Filter é o destino.
Se o gatilho for uma região, Filter deverá conter a ID da região.
Se o gatilho for um evento, Filter deverá conter um elemento Event com a ProviderId do provedor ETW e um ou mais dos seguintes atributos: Id, Version, OpCode e Type.
A ID e a Versão são descritas anteriormente em Tipos de região. OpCode é qualquer valor que você escolher. Type especifica o modo de filtragem da região de destino, incluindo ou excluindo-a com base nas condições descritas na tabela a seguir.
Tipo de filtro | Descrição |
---|---|
Saída | Exclua a região de destino quando o evento ou a região de gatilho for encontrado. |
Posto avançado | Exclua a região de destino quando o destino ocorreu após o evento ou região de gatilho mais recente. |
OutPrev | Exclua a região de destino quando o destino ocorreu antes do primeiro evento ou região de gatilho. |
Em | Inclua a região de destino somente quando o evento de disparo ou a região for encontrado. |
InPost | Inclua a região de destino somente quando ela ocorreu após o evento ou região de gatilho mais recente. |
InPrev | Inclua a região de destino somente quando ela ocorreu antes do primeiro evento ou região de gatilho. |
Relações pai-filho
Você pode definir uma região dentro de outra para criar uma relação pai-filho. Para que uma região seja pai, ela deve ter uma hora de início anterior ou igual à hora de início da região filho. Ele também deve ter um tempo de parada posterior ou igual ao tempo de parada da região filho. Se essas condições não forem atendidas, uma relação pai-filho não poderá ser formada.
Para especificar critérios adicionais para uma região pai, use o nó Pai em um nó De correspondência . O nó Pai tem os mesmos atributos e nós filho que o nó Evento usado na correspondência no nível da região. Você pode especificar que as regiões pai e filho devem ter a mesma ID de thread, ID do processo, ID de atividade e qualquer número de campos de conteúdo correspondentes.
Ao usar campos de conteúdo, se você especificar apenas o atributo FieldName , as regiões pai e filho deverão ter valores de conteúdo correspondentes para esse campo. Se você também especificar o atributo TargetFieldName , o atributo TargetFieldName se aplicará ao pai, bem como ao filho, o que significa que a região filho deve ter um valor de carga para o campo FieldName que corresponda ao valor da carga para o campo TargetFieldName no pai.
Se um filho tiver mais de um pai em potencial, o pai com a hora inicial mais antiga será escolhido.
Exemplo
O exemplo a seguir define critérios para um pai. O pai deve ter uma ID de thread correspondente e um valor de conteúdo para o SubscriberName
campo no filho deve corresponder a um valor para o Client
campo no pai.
<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>
Regiões de aninhamento automático
O aninhamento automático é um recurso opcional que otimiza as relações pai-filho.
Uma região de auto-aninhamento é aquela cuja duração está totalmente contida dentro da duração de uma região irmã. Esta região efetivamente se torna um filho de seu irmão mais duradouro.
Por exemplo, suponha que o aninhamento automático esteja habilitado para as seguintes regiões:
Região pai A
Região filho B1, que começa no tempo 0 e para no momento 6
Região filho B2, que começa no tempo 2 e para no momento 5
Região filho B3, que começa no tempo 3 e para no tempo 4
Neste exemplo, B2 se torna uma região filho de B1 e B3 se torna uma região filho de B2. Ao criar esse tipo de relação pai-filho, o pai com a hora de início mais próxima da hora de início do filho é escolhido.
Para ativar o aninhamento automático, adicione um nó SelfNest dentro do nó Correspondência .
O nó SelfNest não tem parâmetros necessários. No entanto, você pode usar os mesmos parâmetros correspondentes que são usados para criar relações pai-filho comuns. Para obter mais informações, consulte Relações pai-filho anteriormente neste tópico.
Exemplos
O exemplo a seguir define uma marca Match que simplesmente invoca o aninhamento automático:
<Match>
<SelfNest />
</Match>
O exemplo a seguir define um cenário de aninhamento automático mais complexo que requer IDs de thread correspondentes e campos de conteúdo:
<Match>
<SelfNest TID="true">
<Payload FieldName="SubscriberName" />
</SelfNest>
</Match>
Nomes de instância
Você pode atribuir um nome exclusivo a cada instância de uma região correspondente usando o nó Nomenclatura . A nomenclatura é útil quando você tem um grande número de instâncias da mesma região ou quando precisa categorizar regiões com base em outros critérios. Os nomes de instância podem ser baseados em campos de conteúdo ou em relações com outras regiões.
As instâncias podem ser nomeadas com base em valores de conteúdo usando o nó PayloadBased em um nó de nomenclatura . O nó PayloadBased tem um atributo obrigatório, NameField, que especifica o campo de carga cujos valores você deseja usar como nomes de instância. Esses campos de conteúdo podem estar no ponto inicial ou de parada da região.
Veja a seguir um exemplo de uma região com um nó de nomenclatura baseado em conteúdo:
<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>
No exemplo anterior, o nó Nomenclatura indica que o evento inicial ou de parada contém um campo de carga chamado SubscriberName
. Para cada instância da região que é criada, o nome da instância é o valor de conteúdo associado.
Observação
Ao nomear instâncias de região, o WPA primeiro verifica o evento inicial para o campo de conteúdo correspondente. Se um não for encontrado, o WPA pesquisará o evento de interrupção para o campo de conteúdo. Se uma correspondência não for encontrada em nenhum dos eventos, um erro será impresso no console.
Às vezes, as informações no conteúdo não são as únicas informações que queremos. Por exemplo, se as informações no conteúdo contido forem uma ID do dispositivo, convém mapear essas informações de volta para uma descrição e nome do dispositivo. Os atributos de Tipo com suporte são:
Device
, associa um nome e uma descriçãoGUID
, associa o GUID à regiãoCLSID
, associa um nome de classe à ID da classePID
, associa o nome do processo à região
<Naming>
<PayloadBased NameField="SubscriberName" Type="Device" />
</Naming>
Se for possível que o valor da carga seja encontrado nos pontos inicial e de parada, você poderá usar o atributo InstanceEndpoint opcional para especificar qual ponto usar. Os valores possíveis para InstanceEndpoint são Start
e Stop
.
<Naming>
<PayloadBased NameField="SubscriberName" InstanceEndpoint="Start" />
</Naming>
Você também pode nomear uma região com base em relações com outras regiões. Para associar a outra região, adicione um nó RegionBased a um nó de Nomenclatura . O nó RegionBased tem quatro atributos necessários:
RegionGuid, o GUID da região associada.
Relation, um valor condicional que descreve a relação entre a região que você está definindo e a região com a qual você está associando. Atualmente, a única relação com suporte é
IsPresent
, o que significa que o condicional será verdadeiro se a região associada for encontrada em algum lugar no rastreamento.IfRelationTrue, valor de cadeia de caracteres usado como o nome da instância se a relação descrita por Relation for verdadeira.
IfRelationFalse, valor de cadeia de caracteres usado como o nome da instância se a relação descrita por Relation for false.
O exemplo a seguir define uma região que tem nomenclatura baseada em região. Se uma região com um GUID correspondente for encontrada em algum lugar no rastreamento, cada instância de será chamada Warm
de Launch
. Caso contrário, cada instância será chamada Cold
de .
<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>
Observação
Você pode ver nomes de instância no WPA passando o mouse sobre uma instância de região no grafo Regiões de Interesse.
Metadados
Você pode adicionar informações adicionais a uma definição de região na forma de metadados, contidos em um nó de metadados . Por exemplo, você pode incluir informações em metadados que explicam os critérios de região para que outro usuário possa entender com mais facilidade a finalidade da região. Metadados são simplesmente dados adicionais, que não afetam o processamento de regiões.
O WPA adiciona esses metadados a cada instância de região na exibição de gráfico do grafo Regiões de Interesse. Para exibir metadados para eventos correspondentes no WPA, basta expandir a região no modo de exibição do gráfico e rolar até os metadados desejados. O WPA atribui um número exclusivo aos metadados e o nome do nó é exibido como as informações da coluna.
Exemplo
O exemplo a seguir inclui um nó de metadados na definição de região:
<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>