PAYLOAD_FILTER_PREDICATE 结构 (tdh.h)

定义一个事件有效负载筛选器谓词,该谓词描述如何筛选跟踪会话中的单个字段。

语法

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 成员中的一个值。

PAYLOADFIELD_NE
1
FieldName 参数的值不等于 Value 成员中字符串的数值。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_LE
2
FieldName 参数的值小于或等于 Value 成员中字符串的数值。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_GT
3
FieldName 参数的值大于 Value 成员中字符串的数值。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_LT
4
FieldName 参数的值小于 Value 成员中字符串的数值。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_GE
5
FieldName 参数的值大于或等于 Value 成员中字符串的数值。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_BETWEEN
6
FieldName 参数的值介于 Value 成员的字符串中的两个数值之间。 PAYLOADFIELD_BETWEEN 运算符使用关闭的间隔 (LowerBound <= FieldValue <= UpperBound) 。

此运算符用于比较整数,需要 Value 成员中的两个值。 这两个值应用逗号字符 (''') 分隔。

PAYLOADFIELD_NOTBETWEEN
7
FieldName 参数的值不在 Value 成员的字符串中的两个数值之间。

此运算符用于比较整数,需要 Value 成员中的两个值。 这两个值应用逗号字符 (''') 分隔。

PAYLOADFIELD_MODULO
8
FieldName 参数的值是 Value 成员中字符串中数值的取模。 运算符可用于定期采样。

此运算符用于比较整数,需要 Value 成员中的一个值。

PAYLOADFIELD_CONTAINS
20
FieldName 参数的值包含 Value 成员中的子字符串值。 字符串比较不区分大小写。

此运算符用于比较字符串,需要 Value 成员中的一个值。

PAYLOADFIELD_DOESNTCONTAIN
21
FieldName 参数的值不包含 Value 成员中的子字符串。 字符串比较不区分大小写。

此运算符用于比较字符串,需要 Value 成员中的一个值。

PAYLOADFIELD_IS
30
FieldName 参数的值与 Value 成员中字符串的值相同。 字符串比较不区分大小写。

此运算符用于比较字符串或其他非整数值,需要 Value 成员中的一个值。

PAYLOADFIELD_ISNOT
31
FieldName 参数的值与 Value 成员中字符串的值不同。 字符串比较不区分大小写。

此运算符用于比较字符串或其他非整数值,需要 Value 成员中的一个值。

PAYLOADFIELD_INVALID
32
无效的有效负载运算符的值。

Value

包含要根据 CompareOp 成员比较的 或 值的字符串。

注解

在 Windows 8.1、Windows Server 2012 R2 及更高版本中,EnableTraceEx2 函数以及ENABLE_TRACE_PARAMETERSEVENT_FILTER_DESCRIPTOR结构可以使用事件有效负载筛选器来筛选记录器会话中事件的特定内容。

PAYLOAD_FILTER_PREDICATE 结构与 TdhCreatePayloadFilter 函数一起使用,以便为要与 EnableTraceEx2 函数一起使用的单个有效负载创建单个有效负载筛选器。 还可以使用 TdhAggregatePayloadFilters 函数与其他单个有效负载筛选器聚合单个有效负载筛选器。

每个字段都具有提供程序清单中指定的类型,该类型可用于PAYLOAD_FILTER_PREDICATE结构的 Fieldname 成员中筛选该字段。

CompareOp 成员指定要用于有效负载筛选的 运算符。 有效负载筛选支持筛选字符串 (包括 GUID) 和整数 (包括 TDH_INTYPE_FILETIME) 。 不支持对浮点数进行筛选、二进制 blob (包括 TDH_INTYPE_POINTER) ,以及结构化数据 (SIDSYSTEMTIME) 。

Value 成员包含一个或多个要与 Fieldname 成员的值进行比较的值的字符串。 Value 成员从字符串转换为清单中指定的 Fieldname 成员的类型。

所有字符串比较都不区分大小写。 Value 成员中的字符串是 UNICODE,但如果清单中指定的类型为 ANSI,它将转换为 ANSI。

仅当 CompareOp 成员包含有效负载运算符的PAYLOADFIELD_ISPAYLOADFIELD_ISNOT时,才能比较包含 GUIDFieldname 成员。 表示 Value 成员中的 GUID 的字符串必须包含大括号 ({00000000-0000-0000-0000-000000000000},例如) 。

示例

有关使用 PAYLOAD_FILTER_PREDICATE 结构和 TdhCreatePayloadFilter 函数创建有效负载筛选器以用于筛选记录器会话中特定条件的示例,请参阅 EnableTraceEx2 函数的示例。

要求

要求
最低受支持的客户端 Windows 8.1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 R2 [仅限桌面应用]
标头 tdh.h

另请参阅

ENABLE_TRACE_PARAMETERS

EVENT_DESCRIPTOR

EVENT_FILTER_DESCRIPTOR

EnableTraceEx2

TdhAggregatePayloadFilters

TdhCreatePayloadFilter