Bagikan melalui


2. Definisi Penyedia Sistem dan Peristiwa

Profil rekaman Windows Performance Recorder (WPR) disimpan dalam file XML yang memiliki ekstensi .wprp. Definisi penyedia sistem menentukan kata kunci sistem, tumpukan, dan tag kumpulan memori dalam file .wprp.

Definisi Penyedia

Item dalam file .wprp harus ditentukan dalam urutan berikut:

  1. Semua kolektor

  2. Penyedia sistem

  3. Penyedia peristiwa

  4. Penyedia heap, jika ada

  5. Semua profil

Dalam beberapa kasus, penyedia dapat didefinisikan dalam, bukan sebelumnya, definisi profil. Contohnya:

<EventCollector Id="Collector1" Name="Sample Event Collector">
   <BufferSize Value="128"/>
   <Buffers Value="64"/>
</EventCollector>

<Profile Id="Sample.Verbose.File" Name="Sample" Description="Sample profile" DetailLevel="Verbose" LoggingMode="File">
   <Collectors>
      <EventCollectorId Value="Collector1">
         <EventProviders>
            <EventProvider Id="EventProvider_Microsoft-Windows-Kernel-Power" Name="Microsoft-Windows-Kernel-Power" NonPagedMemory="true">
               <Keywords>
                  <Keyword Value="0x4"/>
               </Keywords>
            </EventProvider>
         </EventProviders>
      </EventCollectorId>
   </Collectors>
</Profile>

Penyedia Sistem

Satu-satunya atribut wajib untuk definisi penyedia sistem adalah Id. Tag XML dalam menentukan kata kunci, tumpukan, dan tag kumpulan untuk diaktifkan. Untuk daftar semua kata kunci dan tumpukan yang didukung, lihat Tumpukan dan Kata Kunci (di SystemProvider).

Contoh kode berikut menunjukkan definisi penyedia sistem.

<SystemProvider
  Id="system-provider">
  <Keywords>
    <Keyword
      Value="ProcessThread"/>
    <Keyword
      Value="Loader"/>
    <Keyword
      Value="CSwitch"/>
  </Keywords>
  <Stacks>
    <Stack
      Value="ThreadCreate"/>
    <Stack
      Value="ReadyThread"/>
    <Stack
      Value="CSwitch"/>
  </Stacks>
  <PoolTags>
    <PoolTag
      Value="a*"/>
    <PoolTag
      Value="b*"/>
    <PoolTag
      Value="c*"/>
    <PoolTag
      Value="d*"/>
  </PoolTags>
</SystemProvider>

Penyedia Kejadian

Definisi penyedia peristiwa menentukan penyedia Pelacakan Peristiwa untuk Windows (ETW) untuk digunakan dan kata kunci dan tingkat yang akan diaktifkan. Definisi penyedia peristiwa memerlukan atribut Nama wajib dan atribut Id wajib.

Atribut Name menentukan salah satu nama berikut:

  • Nama penyedia Crimson terdaftar, seperti "Microsoft-Windows-Search-Core".

  • GUID penyedia, seperti "49c2c27c-fe2d-40bf-8c4e-c3fb518037e7".

  • Nama penyedia sebelumnya, seperti "IE6".

  • Nama kasus khusus, seperti "PerfTrack" atau "DotNetProvider".

Anda dapat menggunakan atribut opsional berikut untuk menyempurnakan parameter penyedia:

  • Tumpukan: Menunjukkan apakah penyedia menangkap tumpukan. Pengaturan defaultnya adalah "false".

  • Tingkat: Menentukan tingkat pengelogan ETW. Pengaturan defaultnya adalah 0xFF.

  • NonPagedMemory: Menunjukkan apakah WPR menggunakan memori non-halaman untuk buffer untuk penyedia ini. Pengaturan defaultnya adalah "false".

    Peringatan Beberapa penyedia peristiwa Windows memerlukan penggunaan memori yang tidak disebarkan selama pengambilan jejak. Contoh penyedia peristiwa yang memerlukan NonPagedMemory adalah EventProvider_Microsoft-Windows-Win32k.

  • CaptureStateOnly: Jika diatur ke "true", menunjukkan bahwa WPR mengaktifkan penyedia ini pada status pengambilan yang ditentukan Saja.

  • SID: Menentukan apakah data yang diperluas dari peristiwa yang dicatat menyertakan pengidentifikasi keamanan (SID) pengguna.

  • TSID: Jika diatur ke "true", menentukan pengidentifikasi sesi terminal ke data yang diperluas dari peristiwa yang dicatat.

Tag XML dalam opsional menentukan kata kunci yang akan diaktifkan. Tidak seperti penyedia sistem, penyedia peristiwa tidak memiliki konstanta tekstual yang ditentukan. Oleh karena itu, penyedia peristiwa memiliki nilai heksadesimal. Namun, sintaksnya sama dengan penyedia sistem. Jika Anda tidak menentukan kata kunci, nilai defaultnya adalah 0xFFFFFFFFFFFFFFFF.

Penyedia Peristiwa Timbunan

Definisi penyedia heap menentukan pengidentifikasi proses proses tempat WPR menangkap peristiwa heap. Id adalah satu-satunya atribut wajib. Elemen turunan HeapProcessId tidak wajib. Elemen ini menentukan atribut Id proses dari proses yang ingin Anda analisis. Contoh berikut menunjukkan cara melakukannya.

<HeapEventProvider
  Id="Base_Heap_Provider">
</HeapEventProvider>
<HeapEventProvider
  Base="Base_Heap_Provider"
  Id="Derived_Heap_Provider">
  <HeapProcessIds Operation="Set">
    <HeapProcessId Value="2314"/>
  </HeapProcessIds>
</HeapEventProvider>

Penyedia Capture-State

Tidak seperti penyedia reguler yang diaktifkan di seluruh sesi pelacakan, penyedia status tangkapan diaktifkan hanya saat Anda menyimpan atau memulai sesi pengambilan. Contoh berikut menunjukkan penyedia reguler dan capture-state.

<EventProvider Id="sample-provider" Name="SampleProvider" NonPagedMemory="true" Level="5">
  <Keywords>
    <Keyword Value="0x98"/> <!-- Provider is enabled with these keywords throughout the tracing session. -->
  </Keywords>
  <CaptureStateOnStart>
    <Keyword Value="0xff4"/> <!-- Provider is enabled with these keywords when tracing is started. -->
  </CaptureStateOnStart>
  <CaptureStateOnSave>
    <Keyword Value="0x118"/> <!-- Provider is enabled with these keywords when tracing is saved. -->
  </CaptureStateOnSave>
</EventProvider>

<EventProvider Id="EventProvider_DWMWin32k_CaptureState" Name="e7ef96be-969f-414f-97d7-3ddb7b558ccc" NonPagedMemory="true" CaptureStateOnly="true" >
  <!-- CaptureStateOnly="true" means provider is not enabled throughout the tracing session. -->
  <CaptureStateOnSave>
    <Keyword Value="0x80000"/> <!-- Provider is enabled with these keywords when tracing is saved. -->
  </CaptureStateOnSave>
</EventProvider>

Contoh

Contoh kode berikut mendefinisikan dua penyedia peristiwa.

<EventProvider
  Id="Win32K-provider"
  Name="Microsoft-Windows-Win32K"
  NonPagedMemory="true"
  Stack="true">
  <Keywords>
    <Keyword
      Value="0x240000"/>
  </Keywords>
</EventProvider>

<EventProvider
  Id="Search-Core-provider"
  Name="Microsoft-Windows-Search-Core"/>

Penulisan Profil Perekaman

1. Definisi Kolektor

3. Definisi Profil

SystemProvider

Eventprovider

HeapEventProvider

Kata kunci (dalam SystemProvider)

Tumpukan

PoolTag