TRACELOGGING_DEFINE_PROVIDER_STORAGE makro (traceloggingprovider.h)
Mencadangkan penyimpanan statis untuk handel penyedia TraceLogging yang akan ditentukan oleh pengguna. Lebih suka TRACELOGGING_DEFINE_PROVIDER daripada makro ini.
Sintaks
void TRACELOGGING_DEFINE_PROVIDER_STORAGE(
[in] storageVariable,
[in] providerName,
[in] providerId,
[in, optional] __VA_ARGS__
);
Parameter
[in] storageVariable
Nama yang digunakan untuk variabel penyimpanan penyedia statis, misalnya MyStaticProviderStorage
.
[in] providerName
String literal dengan nama penyedia TraceLogging. Nama ini harus khusus untuk organisasi dan komponen Anda sehingga tidak bertentang dengan penyedia dari komponen lain. String nama ini akan disertakan dalam setiap peristiwa ETW yang dihasilkan oleh penyedia, jadi cobalah untuk menggunakan nama yang relatif pendek. Misalnya, Anda dapat menggunakan nama seperti "MyCompany.MyComponent"
atau "MyCompany.MyOrganization.MyComponent"
.
Ini harus berupa string literal. Jangan gunakan variabel.
[in] providerId
GUID Kontrol ETW untuk penyedia, ditentukan sebagai daftar 11 bilangan bulat yang dipisahkan koma dalam tanda kurung. Misalnya, GUID {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5}
akan dinyatakan sebagai (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5)
.
Meskipun GUID unik apa pun dapat digunakan untuk ID penyedia, Microsoft merekomendasikan penggunaan GUID yang dihasilkan dari nama penyedia menggunakan algoritma hash nama ETW. Lihat TRACELOGGING_DEFINE_PROVIDER untuk informasi tentang membuat ID penyedia.
[in, optional] __VA_ARGS__
Parameter opsional untuk penyedia. Sebagian besar penyedia tidak perlu menentukan parameter opsional apa pun.
Jika Anda ingin penyedia Anda dikaitkan dengan grup penyedia ETW, tambahkan makro TraceLoggingOptionGroup untuk menentukan GUID grup penyedia. Jika tidak, jangan tentukan parameter apa pun __VA_ARGS__
.
Mengembalikan nilai
Tidak ada
Keterangan
Dalam kebanyakan kasus, Anda akan menggunakan TRACELOGGING_DEFINE_PROVIDER alih-alih makro ini. Dalam skenario tertentu yang tidak biasa, Anda mungkin perlu menggunakan makro ini untuk mengalokasikan penyimpanan statis untuk penyedia TraceLogging tanpa juga mendeklarasikan variabel handel. Kode Anda kemudian akan mendeklarasikan variabel handel sebagaimana mewajibkan.
TRACELOGGING_DEFINE_PROVIDER_STORAGE akan mendeklarasikan variabel statis dengan data yang diperlukan untuk penyedia. Anda kemudian dapat membuat handel dengan mengambil alamat variabel ini. Pemanggilan TRACELOGGING_DEFINE_PROVIDER_STORAGE(storageVar, ...)
dapat dianggap mirip dengan kode seperti:
static TraceLoggingProviderState storageVar = { ... };
Contoh penggunaan:
TRACELOGGING_DEFINE_PROVIDER_STORAGE( // defines static storageVar
storageVar, // Name of the storage variable
"MyCompany.MyComponent", // Human-readable name for the provider
// {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5}
(0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5));
const TraceLoggingHProvider g_hMyProvider = &storageVar; // Make a handle
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | traceloggingprovider.h |