다음을 통해 공유


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로 변환됩니다.

GUID를 포함하는 Fieldname 멤버는 CompareOp 멤버에 페이로드 연산자에 대한 PAYLOADFIELD_IS 또는 PAYLOADFIELD_ISNOT 포함되어 있는 경우에만 비교할 수 있습니다. Value 멤버의 GUID를 나타내는 문자열에는 중괄호({00000000-0000-0000-0000-000000000000}예: )가 포함되어야 합니다.

예제

PAYLOAD_FILTER_PREDICATE 구조체와 TdhCreatePayloadFilter 함수를 사용하여 로거 세션의 특정 조건을 필터링하는 데 사용할 페이로드 필터를 만드는 예제는 EnableTraceEx2 함수의 예제를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 R2 Windows Server 2012 [데스크톱 앱만 해당]
머리글 tdh.h

추가 정보

ENABLE_TRACE_PARAMETERS

EVENT_DESCRIPTOR

EVENT_FILTER_DESCRIPTOR

EnableTraceEx2

TdhAggregatePayloadFilters

TdhCreatePayloadFilter