PAYLOAD_FILTER_PREDICATE 構造体 (tdh.h)

トレース セッション内の 1 つのフィールドでフィルター処理する方法を説明するイベント ペイロード フィルター述語を定義します。

構文

typedef struct _PAYLOAD_FILTER_PREDICATE {
  LPWSTR FieldName;
  USHORT CompareOp;
  LPWSTR Value;
} PAYLOAD_FILTER_PREDICATE, *PPAYLOAD_FILTER_PREDICATE;

メンバー

FieldName

パッケージ マニフェストでフィルター処理するフィールドの名前。

CompareOp

比較に使用するペイロード演算子。

このメンバーは、Tdh.h ヘッダー ファイルで定義されているPAYLOAD_OPERATOR列挙の値のいずれかになります。

意味
PAYLOADFIELD_EQ
0
FieldName パラメーターの値は、Value メンバー内の文字列の数値と等しくなります。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_NE
1
FieldName パラメーターの値が、Value メンバーの文字列の数値と等しくありません。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_LE
2
FieldName パラメーターの値は、Value メンバー内の文字列の数値以下です。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_GT
3
FieldName パラメーターの値が、Value メンバーの文字列の数値より大きい。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_LT
4
FieldName パラメーターの値が、Value メンバーの文字列の数値より小さくなります。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_GE
5
FieldName パラメーターの値が、Value メンバー内の文字列の数値以上です。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_BETWEEN
6
FieldName パラメーターの値は、Value メンバーの文字列内の 2 つの数値の間にあります。 PAYLOADFIELD_BETWEEN演算子は、閉じた間隔 (LowerBound <= FieldValue <= UpperBound) を使用します。

この演算子は整数を比較するための演算子であり、 Value メンバーには 2 つの値が必要です。 2 つの値はコンマ文字 (',') で区切る必要があります。

PAYLOADFIELD_NOTBETWEEN
7
FieldName パラメーターの値は、Value メンバーの文字列内の 2 つの数値の間にありません。

この演算子は整数を比較するための演算子であり、 Value メンバーには 2 つの値が必要です。 2 つの値はコンマ文字 (',') で区切る必要があります。

PAYLOADFIELD_MODULO
8
FieldName パラメーターの値は、Value メンバーの文字列内の数値の剰余です。 演算子は、定期的なサンプリングに使用できます。

この演算子は整数を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_CONTAINS
20
FieldName パラメーターの値には、Value メンバーの部分文字列値が含まれています。 文字列比較では大文字と小文字が区別されません。

この演算子は文字列を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_DOESNTCONTAIN
21
FieldName パラメーターの値には、Value メンバーの部分文字列が含まれていません。 文字列比較では大文字と小文字が区別されません。

この演算子は文字列を比較するための演算子であり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_IS
30
FieldName パラメーターの値は、Value メンバーの文字列の値と同じです。 文字列比較では大文字と小文字が区別されません。

この演算子は、文字列またはその他の非整数値を比較するためのものであり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_ISNOT
31
FieldName パラメーターの値は、Value メンバーの文字列の値と同じではありません。 文字列比較では大文字と小文字が区別されません。

この演算子は、文字列またはその他の非整数値を比較するためのものであり、 Value メンバーに 1 つの値が必要です。

PAYLOADFIELD_INVALID
32
無効なペイロード演算子の値。

Value

CompareOp メンバーに応じて比較する値または値を含む文字列。

注釈

Windows 8.1、Windows Server 2012 R2 以降では、EnableTraceEx2 関数と ENABLE_TRACE_PARAMETERS および EVENT_FILTER_DESCRIPTOR 構造体でイベント ペイロード フィルターを使用して、ロガー セッション内のイベントの特定のコンテンツをフィルター処理できます。

PAYLOAD_FILTER_PREDICATE構造体は、TdhCreatePayloadFilter 関数と共に使用され、EnableTraceEx2 関数で使用される 1 つのペイロードの単一のペイロード フィルターを作成します。 TdhAggregatePayloadFilters 関数を使用して、1 つのペイロード フィルターを他の単一のペイロード フィルターと共に集計することもできます。

各フィールドには、プロバイダー マニフェストで指定された型があり、PAYLOAD_FILTER_PREDICATE構造体の Fieldname メンバーでそのフィールドをフィルター処理するために使用できます。

CompareOp メンバーは、ペイロードのフィルター処理に使用する演算子を指定します。 ペイロード フィルター処理では、文字列 ( GUID を含む) と整数 (TDH_INTYPE_FILETIMEを含む) のフィルター処理 サポートされています。 浮動小数点数、バイナリ BLOB ( TDH_INTYPE_POINTERを含む)、および構造化データ (SID および SYSTEMTIME) のフィルター処理はサポートされていません。

Value メンバーには、Fieldname メンバーの値と比較する値または値の文字列が含まれています。 Value メンバーは、マニフェストで指定された Fieldname メンバーの型に文字列から変換されます。

すべての文字列比較で、大文字と小文字が区別されます。 Value メンバーの文字列は UNICODE ですが、マニフェストで指定された型が ANSI の場合は ANSI に変換されます。

GUID を含む Fieldname メンバーは、CompareOp メンバーにペイロード演算子のPAYLOADFIELD_ISまたはPAYLOADFIELD_ISNOTが含まれている場合にのみ比較できます。 Value メンバーの GUID を表す文字列には、中かっこ ({00000000-0000-0000-0000-000000000000}たとえば) を含める必要があります。

PAYLOAD_FILTER_PREDICATE構造体と TdhCreatePayloadFilter 関数を使用して、ロガー セッションの特定の条件に対するフィルター処理に使用するペイロード フィルターを作成する例については、EnableTraceEx2 関数の例を参照してください。

要件

要件
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリのみ]
Header tdh.h

こちらもご覧ください

ENABLE_TRACE_PARAMETERS

EVENT_DESCRIPTOR

EVENT_FILTER_DESCRIPTOR

EnableTraceEx2

TdhAggregatePayloadFilters

TdhCreatePayloadFilter