Membuat File Wilayah Yang Menarik
File Wilayah Yang Menarik adalah file XML valid yang berisi simpul berikut:
InstrumentationManifest
Instrumentasi
Wilayah
RegionsRoot, kontainer untuk semua wilayah yang ditentukan
Satu atau beberapa simpul Wilayah
Catatan
Dalam definisi wilayah, atribut versi dalam deklarasi XML, seperti version='1.0'
, bersifat opsional.
Contoh berikut adalah file Wilayah Minat lengkap yang menentukan wilayah sederhana. Penjelasan untuk atribut dan simpul dalam Wilayah dijelaskan setelah contoh.
<?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>
Menentukan wilayah
Definisi wilayah berisi atribut berikut dalam simpul Wilayah :
Guid (wajib), GUID untuk wilayah tersebut.
Nama (wajib), nama unik untuk wilayah tersebut. Format yang disarankan untuk Nama adalah
Root-GrandparentName-ParentName-RegionName
.FriendlyName (opsional), nama alternatif untuk wilayah tersebut.
Jenis wilayah
Anda bisa membuat jenis wilayah berikut berdasarkan cara memulai dan menghentikannya:
- Wilayah berdasarkan peristiwa
- Wilayah berdasarkan durasi
- Wilayah berdasarkan wilayah lain
- Wilayah yang merupakan kontainer wilayah lain
Wilayah berdasarkan peristiwa
Jenis wilayah yang paling umum adalah wilayah yang titik awal dan titik hentinya ditentukan oleh peristiwa.
Untuk menentukan peristiwa sebagai titik awal atau berhenti, Anda perlu menyediakan atribut berikut:
Penyedia, GUID yang menentukan ID penyedia untuk peristiwa tersebut.
Id, pendek yang tidak ditandatangani yang menentukan ID peristiwa.
Versi, karakter yang tidak ditandatangani yang menentukan versi peristiwa.
Selain itu, Anda dapat lebih menyempurnakan definisi Anda dengan menambahkan satu atau beberapa simpul PayloadIdentifier . Tag ini berisi dua atribut string, FieldName dan FieldValue, yang menentukan bidang yang harus dimuat peristiwa. Tag PayloadIdentifier dijelaskan lebih lanjut di bawah ini dalam Menggunakan bidang payload untuk mengidentifikasi peristiwa.
Contoh
Berikut ini adalah contoh dasar untuk jenis wilayah ini:
<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>
Dalam contoh berikut, wilayah hanya berakhir ketika peristiwa yang ditentukan berisi bidang bernama StartOrStop
dengan nilai 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>
Wilayah berdasarkan durasi
Banyak peristiwa ETW didefinisikan sebagai peristiwa pemberhentian tunggal dengan bidang payload durasi. Kita dapat menghitung titik awal dengan mengurangi durasi dari waktu peristiwa berhenti.
Tag Durasi dapat digunakan dalam tag Mulai atau Berhenti untuk menentukan bidang payload tempat mengambil informasi durasi. Jika Anda menentukan durasi untuk titik awal, durasi dikurangi dari titik berhenti. Demikian pula, jika Anda menentukan durasi untuk titik berhenti, durasi ditambahkan ke titik awal.
Simpul Durasi dapat memiliki atribut berikut:
Penyedia, GUID yang menentukan ID penyedia untuk peristiwa yang berisi bidang payload.
Id, pendek yang tidak ditandatangani yang menentukan ID peristiwa yang berisi bidang payload.
Versi, karakter yang tidak ditandatangani yang menentukan versi peristiwa yang berisi bidang payload.
Durasi, string yang menentukan nama bidang payload.
Pengali. WPA membutuhkan durasi berada dalam nanodetik. Pengali default adalah 1000000 (satu juta), yang akan mengonversi milidetik menjadi nanodetik.
Jika Anda menentukan durasi untuk titik awal, durasi dikurangi dari titik berhenti. Demikian pula, jika Anda menentukan durasi untuk titik berhenti, durasi ditambahkan ke titik awal.
Contoh
Contoh berikut menentukan wilayah yang berhenti saat wilayah lain dimulai. Untuk menghitung titik awal, kami mengurangi durasi dari titik henti kami. Durasi ditemukan di bidang payload HiberHiberFileTime. Kami kemudian mengalikan durasi dengan 1.000.000 untuk mengonversinya menjadi nanodetik dan menguranginya dari titik berhenti.
<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>
Wilayah berdasarkan wilayah lain
Anda dapat menentukan wilayah yang titik awal dan titik hentinya ditentukan oleh wilayah lain dengan menggunakan simpul Wilayah dalam simpul Mulai atau Berhenti . Simpul Wilayah ini memiliki satu atribut wajib, RegionGuid, yang menentukan GUID wilayah target.
Secara default, wilayah yang titik awalnya didasarkan pada wilayah lain akan dimulai saat wilayah titik awal berhenti. Demikian pula, wilayah yang titik hentinya didasarkan pada wilayah lain akan berhenti ketika wilayah titik berhenti dimulai. Anda dapat mengambil alih perilaku default ini dengan menambahkan atribut opsional, Titik Akhir, ke simpul Wilayah.
Titik akhir dapat memiliki nilai Start
atau Stop
dan menentukan titik akhir wilayah mana yang akan digunakan untuk peristiwa awal atau berhenti.
Contoh
Definisi wilayah berikut berisi titik awal dan berhenti yang ditentukan oleh wilayah lain:
<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>
Wilayah yang merupakan kontainer wilayah lain
Wilayah yang berisi wilayah lain disebut kontainer. Kontainer dimulai ketika instans pertama dari wilayah yang dimuat dimulai, dan mereka berhenti ketika instans terakhir berhenti. Wilayah ini tidak memiliki atribut lain.
RegionRoot adalah kontainer untuk semua wilayah yang Anda tentukan. Dengan demikian, RegionRoot dimulai ketika instans pertama suatu wilayah dimulai, dan berhenti saat instans terakhir suatu wilayah berhenti.
Untuk menentukan wilayah kontainer, cukup tentukan wilayah tanpa titik awal atau titik berhenti.
Contoh
Dalam contoh di bawah ini, Pelanggan untuk Membuat Sesi adalah kontainer untuk Anak Pelanggan Buat Sesi. Perhatikan bahwa Pelanggan untuk Membuat Sesi tidak memiliki titik awal atau titik berhenti. Ini akan dimulai ketika instans pertama wilayah anak dimulai dan berhenti ketika instans terakhir wilayah anak berhenti.
<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>
Menggunakan bidang payload untuk mengidentifikasi peristiwa
Seringkali properti ID peristiwa (ID proses, ID utas, dan ID aktivitas) tidak cukup untuk mengidentifikasi skenario tertentu. Misalnya, ketika layanan dimulai, peristiwa generik diaktifkan yang mungkin tidak mengidentifikasi layanan mana yang dimulai. Ketika ini terjadi, Anda harus mengandalkan bidang payload untuk informasi tambahan. Dalam hal ini, salah satu bidang tambahan harus menyertakan nama layanan. Anda dapat menggunakan informasi ini untuk menentukan titik awal dan titik henti wilayah lebih lanjut.
Untuk menggunakan bidang payload sebagai pengidentifikasi peristiwa tambahan, tambahkan satu atau beberapa simpul PayloadIdentifier ke simpul Mulai atau Hentikan .
Simpul PayloadIdentifier memiliki atribut berikut:
FieldName (wajib), nama bidang payload.
FieldValue (wajib), nilai payload.
FieldValueRelationship (opsional). Gunakan IsEqual untuk menentukan bahwa peristiwa harus berisi nilai payload. Gunakan DoesNotContain untuk menentukan bahwa peristiwa tidak boleh berisi nilai payload. Jika atribut ini tidak ditentukan, nilai defaultnya adalah IsEqual.
Catatan
Bidang payload peka huruf besar/kecil, dan definisi XML harus sepenuhnya cocok dengan nilai payload. Misalnya, jika bidang payload memiliki nilai 00000
, definisi wilayah juga harus menentukan 00000
sebagai nilai payload.
Contoh
Contoh berikut berisi simpul PayloadIdentifier untuk titik awal dan titik henti:
<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>
Peristiwa yang cocok untuk wilayah
WPA cocok dengan memulai peristiwa dengan menghentikan peristiwa untuk membentuk wilayah dalam proses yang disebut pencocokan peristiwa. Pada tingkat peristiwa, WPA mencoba mencocokkan satu peristiwa awal atau berhenti berdasarkan ID penyedia, ID peristiwa, versi peristiwa, dan bidang payload tambahan yang ditentukan.
Pencocokan juga dapat diperluas ke tingkat wilayah, di mana kriteria dapat ditentukan yang harus dipenuhi oleh titik awal dan berhenti. Di tingkat wilayah, Anda dapat mengharuskan kedua titik memiliki ID utas, ID proses, dan ID aktivitas yang cocok. Selain itu, Anda juga dapat menentukan kriteria payload di tingkat wilayah.
Anda dapat menggunakan pencocokan tingkat wilayah dengan menyertakan simpul Cocokkan di dalam simpul Wilayah . Simpul Kecocokan berisi simpul anak, Peristiwa, yang dapat memiliki kombinasi atribut berikut:
TID="true"
– memerlukan ID utas yang cocokPID="true"
– memerlukan ID proses yang cocokAID="true"
– memerlukan ID aktivitas yang cocok
Simpul Peristiwa dapat memiliki simpul anak Payload opsional yang berisi atribut FieldName. Simpul ini mengharuskan simpul awal dan berhenti berisi nilai payload yang cocok untuk FieldName yang ditentukan.
Atau, simpul Payload juga dapat berisi atribut opsional, TargetFieldName. Jika atribut ini ditentukan, maka FieldName sesuai dengan bidang payload hanya di simpul awal, sementara TargetFieldName sesuai dengan bidang payload di simpul yang berhenti.
Contoh
Contoh berikut membentuk wilayah saat peristiwa awal berisi bidang payload, SubscriberName, yang nilainya cocok dengan bidang payload, Klien, di simpul yang berhenti. Peristiwa awal dan penghentian juga harus memiliki ID utas yang cocok.
<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>
Memfilter wilayah berdasarkan kondisi
WPA dapat menyertakan atau mengecualikan wilayah berdasarkan kondisi, atau pemicu, yang dapat menjadi peristiwa atau wilayah lain. Pemicu ditentukan dalam elemen Filter , dan wilayah yang berisi Filter adalah target.
Jika pemicunya adalah wilayah, filter harus berisi ID wilayah.
Jika pemicunya adalah peristiwa, maka Filter harus berisi elemen Peristiwa dengan ProviderId penyedia ETW dan satu atau beberapa atribut berikut: Id, Versi, OpCode, dan Jenis.
Id dan Versi dijelaskan sebelumnya di Jenis wilayah. OpCode adalah nilai apa pun yang Anda pilih. Jenis menentukan mode pemfilteran wilayah yang ditargetkan, termasuk atau mengecualikannya berdasarkan kondisi yang dijelaskan dalam tabel berikut.
Jenis filter | Deskripsi |
---|---|
Keluar | Kecualikan wilayah target saat peristiwa atau wilayah pemicu ditemukan. |
Outpost | Kecualikan wilayah target saat target terjadi setelah peristiwa atau wilayah pemicu terbaru. |
OutPrev | Kecualikan wilayah target saat target terjadi sebelum peristiwa atau wilayah pemicu pertama. |
Dalam | Sertakan wilayah target hanya saat peristiwa atau wilayah pemicu ditemukan. |
InPost | Sertakan wilayah target hanya ketika terjadi setelah peristiwa atau wilayah pemicu terbaru. |
InPrev | Sertakan wilayah target hanya ketika terjadi sebelum peristiwa atau wilayah pemicu pertama. |
Hubungan induk-anak
Anda dapat menentukan wilayah dalam wilayah lain untuk membuat hubungan induk-anak. Agar wilayah menjadi induk, wilayah harus memiliki waktu mulai yang lebih awal dari atau sama dengan waktu mulai wilayah anak. Ini juga harus memiliki waktu berhenti yang lebih lambat dari atau sama dengan waktu berhenti wilayah anak. Jika kondisi ini tidak terpenuhi, hubungan induk-anak tidak dapat dibentuk.
Untuk menentukan kriteria tambahan untuk wilayah induk, gunakan simpul Induk dalam simpul Cocokkan . Simpul Induk memiliki atribut dan simpul anak yang sama dengan simpul Peristiwa yang digunakan dalam pencocokan tingkat wilayah. Anda dapat menentukan bahwa wilayah induk dan anak harus memiliki ID utas, ID proses, ID aktivitas, dan sejumlah bidang payload yang cocok.
Saat menggunakan bidang payload, jika Anda hanya menentukan atribut FieldName , maka wilayah induk dan anak harus memiliki nilai payload yang cocok untuk bidang tersebut. Jika Anda juga menentukan atribut TargetFieldName , maka atribut TargetFieldName berlaku untuk induk serta anak, yang berarti bahwa wilayah anak harus memiliki nilai payload untuk bidang FieldName yang cocok dengan nilai payload untuk bidang TargetFieldName di induk.
Jika anak memiliki lebih dari satu induk potensial, induk dengan waktu mulai paling awal dipilih.
Contoh
Contoh di bawah ini menentukan kriteria untuk induk. Induk harus memiliki ID utas yang cocok, dan nilai payload untuk SubscriberName
bidang di anak harus cocok dengan nilai untuk Client
bidang di induk.
<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>
Wilayah bersarang sendiri
Bersarang sendiri adalah fitur opsional yang mengoptimalkan hubungan induk-anak.
Wilayah bersarang sendiri adalah wilayah yang durasinya terkandung sepenuhnya dalam durasi wilayah saudara kandung. Wilayah ini secara efektif menjadi anak dari saudara kandungnya yang tahan lama.
Misalnya, asumsikan bahwa bersarang sendiri diaktifkan untuk wilayah berikut:
Wilayah induk A
Wilayah anak B1, yang dimulai pada waktu 0 dan berhenti pada waktu 6
Wilayah anak B2, yang dimulai pada waktu 2 dan berhenti pada waktu 5
Wilayah anak B3, yang dimulai pada waktu 3 dan berhenti pada waktu 4
Dalam contoh ini, B2 menjadi wilayah anak B1, dan B3 menjadi wilayah anak B2. Saat membuat jenis hubungan induk-turunan ini, induk dengan waktu mulai yang paling dekat dengan waktu mulai anak dipilih.
Untuk mengaktifkan self-nesting, tambahkan node SelfNest di dalam node Match .
Simpul SelfNest tidak memiliki parameter yang diperlukan. Namun, Anda dapat menggunakan parameter pencocokan yang sama yang digunakan untuk membuat hubungan induk-anak biasa. Untuk informasi selengkapnya, lihat Hubungan induk-anak sebelumnya dalam topik ini.
Contoh
Contoh berikut mendefinisikan tag Match yang hanya memanggil bersarang sendiri:
<Match>
<SelfNest />
</Match>
Contoh berikut mendefinisikan skenario bersarang sendiri yang lebih kompleks yang memerlukan ID utas dan bidang payload yang cocok:
<Match>
<SelfNest TID="true">
<Payload FieldName="SubscriberName" />
</SelfNest>
</Match>
Nama instans
Anda dapat menetapkan nama unik untuk setiap instans wilayah yang cocok dengan menggunakan simpul Penamaan . Penamaan berguna ketika Anda memiliki sejumlah besar instans dari wilayah yang sama atau ketika Anda perlu mengategorikan wilayah berdasarkan kriteria lain. Nama instans dapat didasarkan pada bidang payload atau hubungan dengan wilayah lain.
Instans dapat diberi nama berdasarkan nilai payload dengan menggunakan simpul PayloadBased dalam simpul Penamaan . Simpul PayloadBased memiliki satu atribut yang diperlukan, NameField, yang menentukan bidang payload yang nilainya ingin Anda gunakan sebagai nama instans. Bidang payload ini dapat berada di titik awal atau berhenti untuk wilayah tersebut.
Berikut ini adalah contoh wilayah dengan node Penamaan berbasis payload:
<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>
Dalam contoh sebelumnya, node Penamaan menunjukkan bahwa peristiwa awal atau penghentian berisi bidang payload bernama SubscriberName
. Untuk setiap instans wilayah yang dibuat, nama instans adalah nilai payload terkait.
Catatan
Saat menamai instans wilayah, WPA terlebih dahulu memeriksa peristiwa awal untuk bidang payload yang cocok. Jika tidak ditemukan, WPA kemudian akan mencari peristiwa penghentian untuk bidang payload. Jika kecocokan tidak ditemukan di salah satu peristiwa, kesalahan akan dicetak ke konsol.
Terkadang, informasi dalam payload bukanlah satu-satunya informasi yang kita inginkan. Misalnya, jika informasi dalam payload yang terkandung adalah ID perangkat, kami mungkin ingin memetakan informasi ini kembali ke deskripsi dan nama perangkat. Atribut Type yang didukung adalah:
Device
, mengaitkan nama dan deskripsiGUID
, mengaitkan GUID dengan wilayahCLSID
, mengaitkan nama kelas ke ID kelasPID
, mengaitkan nama proses dengan wilayah
<Naming>
<PayloadBased NameField="SubscriberName" Type="Device" />
</Naming>
Jika memungkinkan nilai payload ditemukan di titik awal dan berhenti, Anda dapat menggunakan atribut InstanceEndpoint opsional untuk menentukan titik mana yang akan digunakan. Nilai yang mungkin untuk InstanceEndpoint adalah Start
dan Stop
.
<Naming>
<PayloadBased NameField="SubscriberName" InstanceEndpoint="Start" />
</Naming>
Anda juga dapat memberi nama wilayah berdasarkan hubungan dengan wilayah lain. Untuk mengaitkan dengan wilayah lain, tambahkan simpul RegionBased ke simpul Penamaan . Simpul RegionBased memiliki empat atribut yang diperlukan:
RegionGuid, GUID wilayah terkait.
Relasi, nilai kondisional yang menjelaskan hubungan antara wilayah yang Anda tentukan dan wilayah yang Anda asosiasikan. Saat ini, satu-satunya hubungan yang didukung adalah
IsPresent
, yang berarti bahwa kondisional benar jika wilayah terkait ditemukan di suatu tempat di jejak.IfRelationTrue, nilai string yang digunakan sebagai nama instans jika hubungan yang dijelaskan oleh Relation adalah true.
IfRelationFalse, nilai string yang digunakan sebagai nama instans jika hubungan yang dijelaskan oleh Relasi salah.
Contoh berikut menentukan wilayah yang memiliki penamaan berbasis wilayah. Jika wilayah dengan GUID yang cocok ditemukan di suatu tempat di jejak, maka setiap instans Launch
diberi nama Warm
. Jika tidak, setiap instans diberi nama 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>
Catatan
Anda dapat melihat nama instans di WPA dengan mengarahkan mouse ke atas instans wilayah di grafik Wilayah Minat.
Metadata
Anda dapat menambahkan informasi tambahan ke definisi wilayah dalam bentuk metadata, yang terkandung dalam simpul Metadata . Misalnya, Anda mungkin menyertakan informasi dalam metadata yang menjelaskan kriteria wilayah sehingga pengguna lain dapat lebih mudah memahami tujuan wilayah tersebut. Metadata hanyalah data tambahan—tidak memengaruhi pemrosesan wilayah.
WPA menambahkan metadata ini ke setiap instans wilayah dalam tampilan bagan grafik Wilayah Minat. Untuk melihat metadata untuk peristiwa yang cocok di WPA, cukup perluas wilayah dalam tampilan bagan, dan gulir ke metadata yang diinginkan. WPA menetapkan angka unik ke metadata, dan nama simpul ditampilkan sebagai informasi kolom.
Contoh
Contoh berikut menyertakan simpul Metadata dalam definisi wilayah:
<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>