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