Bagikan melalui


Makro TraceLoggingStruct (traceloggingprovider.h)

Makro pembungkus TraceLogging yang menambahkan bidang yang berisi bidang lain ke peristiwa.

Sintaks

void TraceLoggingStruct(
  [in]            fieldCount,
  [in]            name,
  [in, optional]  __VA_ARGS__
);

Parameter

[in] fieldCount

Jumlah bidang yang akan dianggap sebagai bagian dari struktur. Parameter ini harus berupa konstanta waktu kompilasi.

[in] name

Nama yang akan digunakan untuk struktur dalam peristiwa. Parameter nama harus berupa string harfiah (bukan variabel) dan tidak boleh berisi karakter '\0'.

[in, optional] __VA_ARGS__

Parameter deskripsi dan tag opsional untuk definisi bidang.

TraceLoggingStruct dapat ditentukan dengan 2, 3, atau 4 parameter. Jika parameter tidak ditentukan, default akan digunakan. Misalnya, TraceLoggingStruct(3, "MyStruct") sama dengan TraceLoggingStruct(3, "MyStruct", "", 0).

  • [in, optional] description

    Deskripsi nilai bidang peristiwa. Jika disediakan, parameter deskripsi harus berupa string harfiah dan akan disertakan dalam PDB.

  • [in, optional] tags

    Nilai bilangan bulat konstanta waktu kompilasi. 28 bit rendah dari nilai akan disertakan dalam metadata bidang. Semantik nilai ini didefinisikan oleh konsumen peristiwa. Selama pemrosesan peristiwa, nilai ini dapat diambil dari bidang Tag EVENT_PROPERTY_INFO .

Nilai kembali

Tidak ada

Keterangan

TraceLoggingStruct(fieldCount, name, ...) dapat digunakan sebagai parameter untuk pemanggilan makro TraceLoggingWrite . Setiap parameter TraceLoggingStruct menambahkan satu bidang logis ke peristiwa. Bidang adalah struktur atau grup yang berisi bidang logika fieldCount berikutnya sebagai nilainya.

Contoh

TraceLoggingWrite(
    g_hProvider,
    "MyEventWithStruct",
    TraceLoggingLevel(WINEVENT_LEVEL_WARNING), // Levels defined in <winmeta.h>
    TraceLoggingKeyword(MyEventCategories), // Provider-defined categories
    TraceLoggingInt32(num1, "BeforeStruct"),
    TraceLoggingStruct(3, "StructWith3Fields"),
        TraceLoggingInt32(num2, "StructField1"),
        TraceLoggingInt32(num3, "StructField2"),
        TraceLoggingInt32(num4, "StructField3"),
    TraceLoggingInt32(num5, "AfterStruct));

TraceLoggingWrite(
    g_hProvider,
    "MyEventWithNestedStruct",
    TraceLoggingLevel(WINEVENT_LEVEL_VERBOSE), // Levels defined in <winmeta.h>
    TraceLoggingKeyword(MyEventCategories), // Provider-defined categories
    TraceLoggingInt32(num1, "BeforeStruct"),
    TraceLoggingStruct(3, "StructWith3Fields"),
        TraceLoggingInt32(num2, "StructField1"),
        TraceLoggingStruct(2, "StructField2"),
            TraceLoggingInt32(num3, "StructField2NestedField1"),
            TraceLoggingInt32(num4, "StructField2NestedField2"),
        TraceLoggingInt32(num5, "StructField3"),
    TraceLoggingInt32(num6, "AfterStruct));

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

TraceLoggingWrite

Makro pembungkus TraceLogging