Bagaimana Anda menentukan jenis data kustom?
Pelacakan Peristiwa untuk Windows (ETW) mendefinisikan beberapa jenis sederhana dan kompleks untuk digunakan dalam fungsi pelacakan. Jenis-jenis ini dideklarasikan dalam file Defaultwpp.ini. Namun, Anda dapat membuat jenis data kustom Anda sendiri.
Anda menggunakan jenis data kustom saat ingin mendeklarasikan variabel dan menggunakan istilah yang bermakna--alih bilangan bulat--untuk menjelaskan nilai variabel.
Misalnya, variabel DiskState berisi status disk. Berikut ini adalah nilai DiskState:
DiskOffline = 0
DiskOnline = 1
DiskFailed = 2
DiskStalled = 3
Alih-alih membaca "DiskState=2" dalam pesan pelacakan, dan kemudian harus mencari arti 2, Anda dapat menentukan jenis kustom yang disebut DiskState, untuk mendapatkan pesan jejak yang mengatakan "DiskState Gagal."
Membuat Tipe Data Kustom
Untuk membuat jenis data kustom, selesaikan langkah-langkah berikut:
Buat file konfigurasi lokal yang memiliki ekstensi nama file .ini, seperti localwpp.ini. Anda tidak dapat menambahkan tipe kustom ke header atau file sumber.
Gunakan konstanta TYPEMACRO untuk menentukan jenis data kustom.
Identifikasi data konfigurasi di sumber atau file header Anda.
Tambahkan parameter -ini ke makro RUN_WPP dalam file sumber Anda.
Gunakan jenis data kustom dalam pesan pelacakan.
Menentukan konstanta TYPEMACRO
Tentukan konstanta TYPEMACRO yang memiliki format berikut. Nilai didefinisikan sebagai daftar string.
TYPEMACRO(Type,{ItemListLong | ItemListShort | ItemListByteShort | ItemListByteLong},(Value1,Value2...));
Dimana:
ItemListShort
Bilangan bulat 16-bit yang ditandatangani.
ItemListLong
Bilangan bulat 32-bit yang ditandatangani atau tidak ditandatangani.
ItemSetByteShort
Nilai 16-bit yang ditandatangani.
ItemSetByteLong
Nilai 32-bit yang ditandatangani atau tidak ditandatangani.
Contohnya:
TYPEMACRO(DiskState,ItemListLong(DiskOffline,DiskOnline,DiskFailed,DiskStalled));
Mengidentifikasi Data Konfigurasi
Jika Anda menambahkan jenis data kustom ke file yang memiliki kode lain, seperti file sumber atau file header, gunakan konfigurasi begin_wpp dan pernyataan end_wpp untuk mengidentifikasi data konfigurasi dalam file. Contohnya:
// begin_wpp config
//TYPEMACRO(DiskState,ItemListLong(DiskOffline,DiskOnline,DiskFailed,DiskStalled));
// end_wpp
Jika Anda menambahkan jenis data kustom ke file konfigurasi lokal, konfigurasi begin_wpp dan pernyataan end_wpp tidak diperlukan.
Tambahkan parameter -ini
Saat Anda membuat file konfigurasi lokal untuk jenis kustom, Anda perlu menambahkan parameter -ini ke pernyataan RUN_WPP yang memanggil preprosektor WPP.
Parameter -ini mengarahkan ETW untuk mencari data konfigurasi dalam file konfigurasi (.ini), selain menggunakan Defaultwpp.ini. Contohnya:
RUN_WPP -km -ini:localwpp.ini
Penting
Anda tidak boleh menentukan sakelar -km dalam direktif RUN_WPP untuk aplikasi mode pengguna atau pustaka tautan dinamis (DLL).
Menggunakan Tipe Data Kustom
Setelah menentukan jenis data kustom, Anda bisa menggunakannya dalam pesan pelacakan. Awali nama jenis dengan tanda persen (%) dan kelilingi dengan tanda seru (!). Contohnya:
DoTraceMessage(INFO,"Disk State is %!diskstate!",DiskState);
Pesan jejak yang dihasilkan menggunakan konstanta yang Anda tentukan untuk mewakili nilai:
DiskState is Offline.