FWPS_CALLOUT_CLASSIFY_FN0 콜백 함수(fwpsk.h)

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

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

구문

FWPS_CALLOUT_CLASSIFY_FN0 FwpsCalloutClassifyFn0;

void FwpsCalloutClassifyFn0(
  [in]      const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]      const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out] void *layerData,
  [in]      const FWPS_FILTER0 *filter,
  [in]      UINT64 flowContext,
  [in, out] FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

매개 변수

[in] inFixedValues

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

[in] inMetaValues

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

[in, out] layerData

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

[in] filter

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

[in] flowContext

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

[in, out] classifyOut

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

반환 값

없음

설명

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

필터 엔진은 필터 작업에 대한 설명선이 지정되는 필터 엔진의 필터에 대해 모든 테스트 조건이 true일 때마다 처리할 데이터를 사용하여 설명선의 classifyFn0 설명선 함수를 호출합니다.

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

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

요구 사항

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

추가 정보

컨텍스트를 Data Flow 연결

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

데이터 로깅

FWPS_CALLOUT0

FWPS_CLASSIFY_OUT0

FWPS_FILTER0

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

패킷 수정 예제

필터 엔진에 설명선 등록

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

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

classifyFn

classifyFn1

classifyFn2