FWPS_CALLOUT2 구조체(fwpsk.h)

FWPS_CALLOUT2 구조는 설명선 드라이버가 필터 엔진에 설명선 등록에 필요한 데이터를 정의합니다.

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

 

구문

typedef struct FWPS_CALLOUT2_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN2           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN2             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;

멤버

calloutKey

설명선 을 고유하게 식별하는 설명선 드라이버 정의 GUID 입니다.

flags

설명선별 매개 변수를 지정하는 플래그입니다. 가능한 플래그는 다음과 같습니다.

의미
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
설명선 드라이버는 데이터 흐름을 지원하는 계층에 추가될 설명선 등록 시 이 플래그를 지정할 수 있습니다. 이 플래그를 지정하면 필터 엔진은 데이터 흐름과 연결된 컨텍스트가 있는 경우에만 설명선 드라이버의 classifyFn2 설명선 함수를 호출합니다. 설명선 드라이버는 FwpsFlowAssociateContext0 함수를 호출하여 컨텍스트를 데이터 흐름과 연결합니다.
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
콜아웃 드라이버는 이 플래그를 지정하여 콜아웃 드라이버의 classifyFn2 콜아웃 함수가 네트워크 데이터 처리를 오프로드 가능 NIC(네트워크 인터페이스 카드)로 오프로드하여 영향을 받지 않음을 나타냅니다. 이 플래그를 지정하지 않으면 필터 작업에 대한 설명선이 지정되는 필터에서 처리되는 모든 트래픽에 대해 네트워크 데이터 처리의 오프로드가 비활성화됩니다.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
설명선 드라이버는 트랜잭션 내에 추가된 개체 및 필터에 대한 알림을 받을 수 있음을 나타내기 위해 이 플래그를 지정합니다. 필터 엔진은 트랜잭션이 커밋된 후 알림을 보냅니다.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
설명선 드라이버는 스트림 수준에서 데이터 흐름의 동적 스트림 검사를 수행할 수 있음을 나타내기 위해 이 플래그를 지정합니다. Stream 검사를 참조하세요.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
콜아웃 드라이버는 기존 소켓 작업이 다시 분류될 때 호출되도록 자신을 등록하도록 이 플래그를 지정합니다.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
시스템에서 사용하도록 예약되었습니다. 콜아웃 드라이버는 이 플래그를 무시해야 합니다.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
설명선 드라이버는 설명선이 최대 64K의 큰 패킷으로 TCP 수신 세그먼트 병합(RSC)을 지원함을 나타내기 위해 이 플래그를 지정합니다. 이 플래그를 지정하지 않고 설명선이 등록된 경우 필터 작업에 대한 설명선이 지정되는 필터에서 처리되는 모든 트래픽에 대해 RSC가 비활성화됩니다.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
callout 드라이버는 계층 2에 추가될 콜아웃을 등록할 때 이 플래그를 지정하여 classifyFn2 콜아웃 함수가 연결된 여러 NET_BUFFER_LIST 구조를 분류할 수 있음을 나타냅니다. 자세한 내용은 레이어 2 필터링 사용을 참조하세요.
주의  

설명선 드라이버가 이 플래그를 설정하는 경우 다음 함수를 사용하여 NET_BUFFER_LISTs 수정할 수 없습니다.

이 플래그를 설정하면 FwpsAllocateCloneNetBufferList0 은 항상 INVALID_PARAMETER 오류를 반환합니다. 이로 인해 예기치 않게 타사 설명선 드라이버가 NET_BUFFER_LISTs 참조 수를 관리하지 못하여 송신 및 수신 작업이 중지될 수 있습니다.

FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
설명선 드라이버는 설명선이 네트워크 매체의 MTU보다 큰 패킷이 있는 UDP 구분 오프로드(USO)를 지원함을 나타내기 위해 이 플래그를 지정합니다. 이 플래그를 지정하지 않고 설명선이 등록된 경우 필터 작업에 대한 설명선이 지정되는 필터에서 처리되는 모든 트래픽에 대해 USO가 비활성화됩니다. 참고: 이 플래그가 지원되는 가장 빠른 버전은 Windows Insider Preview 버전 10.0.25876입니다.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
설명선 드라이버는 설명선이 최대 64K의 큰 패킷이 있는 URO(UDP 수신 오프로드)를 지원함을 나타내기 위해 이 플래그를 지정합니다. 이 플래그를 지정하지 않고 설명선이 등록된 경우 필터 작업에 대한 설명선이 지정되는 필터에서 처리되는 모든 트래픽에 대해 URO가 비활성화됩니다. 참고: 이 플래그를 지정하면 설명선이 인바운드 URO 패킷을 복제하고 다시 내보내지 않아야 합니다.

classifyFn

콜아웃 드라이버의 classifyFn2 콜아웃 함수에 대한 포인터입니다. 필터 엔진은 콜아웃에서 처리할 네트워크 데이터가 있을 때마다 이 함수를 호출합니다.

notifyFn

콜아웃 드라이버의 notifyFn2 함수에 대한 포인터입니다. 필터 엔진은 이 함수를 호출하여 콜아웃 드라이버에 콜아웃과 연결된 이벤트에 대해 알립니다.

flowDeleteFn

콜아웃 드라이버의 flowDeleteFn 콜아웃 함수에 대한 포인터입니다. 필터 엔진은 콜아웃에서 처리되는 데이터 흐름이 종료될 때마다 이 함수를 호출합니다.

설명선 드라이버가 설명선이 처리하는 데이터 흐름과 컨텍스트를 연결하지 않으면 이 멤버를 NULL로 설정해야 합니다.

설명

설명선 드라이버는 필터 엔진에 설명선이 등록될 때 초기화된 FWPS_CALLOUT2 구조체에 대한 포인터를 FwpsCalloutRegister2 함수에 전달합니다.

설명선은 드라이버가 스트림 검사를 수행하는 데 관심이 있는 연결에 대해서만 FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW 플래그를 설정할 수 있습니다. 이 설명선은 다른 모든 연결에서 무시됩니다. 성능이 향상되고 드라이버가 불필요한 상태 데이터를 유지할 필요가 없습니다.

이 구조체는 기본적으로 이전 버전과 동일하며 , FWPS_CALLOUT1. 유일한 차이점은 이 버전의 멤버가 설명선 함수 포인터의 업데이트된 버전을 저장하고 설명선 드라이버가 설정할 수 있는 추가 플래그를 사용할 수 있다는 것입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 사용하여 사용할 수 있습니다.
머리글 fwpsk.h(Fwpsk.h 포함)

추가 정보

FWPS_CALLOUT0

FWPS_CALLOUT1

FwpsCalloutRegister2

계층 2 필터링 사용

classifyFn2

flowDeleteFn

notifyFn2