FWPS_CALLOUT_CLASSIFY_FN2 콜백 함수(fwpsk.h)

필터 엔진은 콜아웃에서 처리할 데이터가 있을 때마다 콜아웃의 classifyFn2 콜아웃 함수를 호출합니다.

참고classifyFn2는 Windows 8 이상에서 사용되는 classifyFn의 특정 버전입니다. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요. Windows 7의 경우 classifyFn1 을 사용할 수 있습니다. Windows Vista의 경우 classifyFn0 을 사용할 수 있습니다.

 

구문

FWPS_CALLOUT_CLASSIFY_FN2 FwpsCalloutClassifyFn2;

void FwpsCalloutClassifyFn2(
  [in]                const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]                const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out, optional] void *layerData,
  [in, optional]      const void *classifyContext,
  [in]                const FWPS_FILTER2 *filter,
  [in]                UINT64 flowContext,
  [in, out]           FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

매개 변수

[in] inFixedValues

FWPS_INCOMING_VALUES0 구조체에 대한 포인터입니다. 이 구조체에는 필터링되는 계층의 각 데이터 필드에 대한 값이 포함됩니다.

[in] inMetaValues

에 대한 포인터 FWPS_INCOMING_METADATA_VALUES0 구조체입니다. 이 구조체에는 필터링되는 계층의 각 메타데이터 필드에 대한 값이 포함됩니다.

[in, out, optional] layerData

필터링되는 계층의 원시 데이터를 설명하는 구조체에 대한 포인터입니다. 이 매개 변수는 필터링되는 계층과 classifyFn2 콜아웃 함수가 호출되는 조건에 따라 NULL일 수 있습니다. 스트림 계층의 경우 이 매개 변수는 을 가리킵니다. FWPS_STREAM_CALLOUT_IO_PACKET0 구조체입니다. 다른 모든 계층의 경우 이 매개 변수는 NULL이 아닌 경우 NET_BUFFER_LIST 구조를 가리킵니다.

[in, optional] classifyContext

필터 엔진에서 설명선 드라이버와 연결된 컨텍스트 데이터에 대한 포인터입니다.

[in] filter

FWPS_FILTER2 구조체에 대한 포인터입니다. 이 구조체는 필터 작업에 대한 설명선 지정 필터를 설명합니다.

[in] flowContext

데이터 흐름과 연결된 컨텍스트를 포함하는 UINT64 형식 변수입니다. 데이터 흐름과 연결된 컨텍스트가 없는 경우 이 매개 변수는 0입니다. 데이터 흐름을 지원하지 않는 필터링 계층의 필터 엔진에 설명선이 추가되면 classifyFn2 설명선 함수는 이 매개 변수를 무시해야 합니다.

[in, out] classifyOut

classifyFn2 설명선 함수가 호출자에게 반환하는 모든 데이터를 수신하는 FWPS_CLASSIFY_OUT0 구조체에 대한 포인터입니다.

반환 값

없음

설명

설명선 드라이버는 FwpsCalloutRegister2 함수를 호출하여 설명선의 설명선 함수를 필터 엔진에 등록합니다.

필터 엔진은 필터 작업에 대한 설명선 을 지정하는 필터 엔진의 필터에 대해 모든 테스트 조건이 충족될 때마다 처리할 데이터가 있는 설명선의 classifyFn2 설명선 함수를 호출합니다.

설명선의 classifyFn2 설명선 함수는 다음과 같은 상황에서 FWPS_CLASSIFY_OUT0 구조체의 권한 멤버에서 FWPS_RIGHT_ACTION_WRITE 플래그를 지워야 합니다.

  • classifyFn2 설명선 함수가 FWPS_CLASSIFY_OUT0 구조체의 actionType 멤버를 FWP_ACTION_BLOCK 설정합니다.
  • classifyFn2 설명선 함수가 FWPS_CLASSIFY_OUT0 구조체의 actionType 멤버를 FWP_ACTION_PERMIT 설정하면 FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT 플래그가 FWPS_FILTER2 구조체의 Flags 멤버에 설정됩니다.
  • 설명선이 에 대한 호출에서 intendToModify 매개 변수를 TRUE로 설정하여 복제 넷 버퍼 목록을 수정하려고 함을 표시한 경우 FwpsReferenceNetBufferList0 함수입니다.

    이 함수는 기본적으로 이전 버전인 classifyFn1과 동일합니다. 그러나 업데이트된 FWPS_FILTER2 구조체는 필터 매개 변수로 가리키고 layerData 매개 변수는 선택 사항입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 Windows
헤더 fwpsk.h(Fwpsk.h 포함)
IRQL <= DISPATCH_LEVEL

추가 정보

컨텍스트를 Data Flow 연결

설명선 드라이버 설명선 함수

데이터 로깅

FWPS_CLASSIFY_OUT0

FWPS_FILTER2

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister2

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

패킷 수정 예제

필터 엔진에 설명선 등록

Stream 데이터의 심층 검사를 위한 콜아웃 사용

심층 검사를 위해 콜아웃 사용

classifyFn

classifyFn0

classifyFn1