Bagikan melalui


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

Lihat juga

TRACELOGGING_DECLARE_PROVIDER

TRACELOGGING_DEFINE_PROVIDER

TraceLoggingWrite