次の方法で共有


TraceLoggingStruct マクロ (traceloggingprovider.h)

他のフィールドを含むフィールドをイベントに追加する TraceLogging ラッパー マクロ

構文

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

パラメーター

[in] fieldCount

構造体の一部と見なされるフィールドの数。 このパラメーターはコンパイル時定数である必要があります。

[in] name

イベントの 構造体に使用する名前。 name パラメーターは、(変数ではなく) 文字列リテラルである必要があり、'\0' 文字を含めてはなりません。

[in, optional] __VA_ARGS__

オプションの 説明 と、フィールド定義のパラメーターに タグを付 けます。

TraceLoggingStruct は、2、3、または 4 個のパラメーターで指定できます。 パラメーターを指定しない場合は、既定値が使用されます。 たとえば、TraceLoggingStruct(3, "MyStruct") は、TraceLoggingStruct(3, "MyStruct", "", 0) と同じです。

  • [in, optional] description

    イベント フィールドの値の説明。 指定した場合、description パラメーターは文字列リテラルである必要があり、 PDB に含まれます。

  • [in, optional] tags

    コンパイル時定数整数値。 値の下位 28 ビットは、フィールドのメタデータに含まれます。 この値のセマンティクスは、イベント コンシューマーによって定義されます。 イベント処理中に、この値は EVENT_PROPERTY_INFO Tags フィールドから取得できます。

戻り値

なし

解説

TraceLoggingStruct(fieldCount, name, ...)は、TraceLoggingWrite マクロの呼び出しのパラメーターとして使用できます。 各 TraceLoggingStruct パラメーターは、イベントに 1 つの論理フィールドを追加します。 フィールドは、後続の fieldCount 論理フィールドを値として含む構造体またはグループです。

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));

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー traceloggingprovider.h

こちらもご覧ください

TraceLoggingWrite

TraceLogging ラッパー マクロ