FWPS_CLASSIFY_OUT0 구조체(fwpstypes.h)

FWPS_CLASSIFY_OUT0 구조체는 설명선의 classifyFn 설명선 함수의 호출자에게 반환되는 데이터를 정의합니다.

FWPS_CLASSIFY_OUT0 특정 버전의 FWPS_CLASSIFY_OUT. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요.
 

구문

typedef struct FWPS_CLASSIFY_OUT0_ {
  FWP_ACTION_TYPE actionType;
  UINT64          outContext;
  UINT64          filterId;
  UINT32          rights;
  UINT32          flags;
  UINT32          reserved;
} FWPS_CLASSIFY_OUT0;

멤버

actionType

설명선 드라이버의 classifyFn 설명선 함수에 의해 결정되는 대로 수행할 제안된 작업을 지정하는 FWP_ACTION_TYPE 값입니다. 설명선 드라이버는 이 변수를 다음 값 중 하나로 설정합니다.

FWP_ACTION_BLOCK

데이터가 전송되거나 수신되지 않도록 차단합니다.

FWP_ACTION_CONTINUE

필터 엔진의 다음 필터로 데이터를 전송하거나 받을 수 있도록 차단하거나 허용하는 결정을 전달합니다.

FWP_ACTION_NONE

데이터에 대해 아무 작업도 수행하지 않습니다.

FWP_ACTION_NONE_NO_MATCH

열거형 필터 데이터 형식과 일치하지 않으므로 데이터에 대해 아무 작업도 수행하지 않습니다.

FWP_ACTION_PERMIT

데이터를 전송하거나 받을 수 있도록 허용합니다.

이 멤버에 대한 쓰기 액세스는 권한 멤버의 FWPS_RIGHT_ACTION_WRITE 플래그에 의해 제어됩니다. FWPS_RIGHT_ACTION_WRITE 플래그가 설정된 경우 콜아웃 드라이버는 위의 값을 이 멤버에 쓸 수 있습니다. FWPS_RIGHT_ACTION_WRITE 플래그가 설정되지 않은 경우 설명선 드라이버는 이전에 필터 엔진에서 더 높은 가중치 필터에 의해 반환된 FWP_ACTION_PERMIT 동작을 거부하지 않는 한 이 멤버에게 쓰지 않아야 합니다. 이러한 상황에서는 콜아웃 드라이버가 이 멤버를 FWP_ACTION_BLOCK 설정합니다.

outContext

시스템에서 사용하도록 예약되었습니다. 콜아웃 드라이버는 이 멤버를 사용하면 안됩니다.

filterId

시스템에서 사용하도록 예약되었습니다. 콜아웃 드라이버는 이 멤버를 사용하면 안됩니다.

rights

이 구조체 내의 다른 멤버에 대한 쓰기 액세스를 제어하는 플래그입니다. 가능한 플래그는 다음과 같습니다.

FWPS_RIGHT_ACTION_WRITE

이 플래그가 설정되면 설명선 드라이버가 이 구조체의 actionType 멤버에 쓸 수 있습니다. 이 플래그가 설정되지 않은 경우 설명선 드라이버는 이전에 필터 엔진에서 더 높은 가중치 필터에 의해 반환된 FWP_ACTION_PERMIT 동작을 거부하는 경우에만 이 구조체의 actionType 멤버에 쓸 수 있습니다.

flags

데이터에 대해 수행된 작업에 영향을 주는 플래그입니다. 가능한 플래그는 다음과 같습니다.

FWPS_CLASSIFY_OUT_FLAG_ABSORB

차단된 데이터는 이벤트 로깅이나 감사 없이 자동으로 삭제됩니다. 이는 일반적으로 원래 패킷을 흡수하고 수정된 패킷을 추가로 처리할 패킷 수정에 사용됩니다.

actionType 멤버가 FWP_ACTION_BLOCK 설정된 경우 다음 계층에서 이 플래그 를 적용할 수 있습니다.

FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
FWPS_LAYER_INBOUND_IPPACKET_V4
FWPS_LAYER_INBOUND_IPPACKET_V6
FWPS_LAYER_OUTBOUND_IPPACKET_V4
FWPS_LAYER_OUTBOUND_IPPACKET_V6
FWPS_LAYER_INBOUND_TRANSPORT_V4
FWPS_LAYER_INBOUND_TRANSPORT_V6
FWPS_LAYER_OUTBOUND_TRANSPORT_V4
FWPS_LAYER_OUTBOUND_TRANSPORT_V6
FWPS_LAYER_INBOUND_ICMP_ERROR_V4
FWPS_LAYER_INBOUND_ICMP_ERROR_V6
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6
FWPS_LAYER_DATAGRAM_DATA_V4
FWPS_LAYER_DATAGRAM_DATA_V6
FWPS_LAYER_STREAM_PACKET_V4
FWPS_LAYER_STREAM_PACKET_V6
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6
FWPS_LAYER_ALE_AUTH_CONNECT_V4
FWPS_LAYER_ALE_AUTH_CONNECT_V6

FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4 및 FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6 계층에서 이 플래그를 설정할 수도 있습니다. 그러나 이러한 계층은 컨텍스트를 흐름과 연결하기 위한 것이므로 권장되지 않습니다.

이 플래그가 설정되지 않은 경우 차단 작업에는 정상적인 이벤트 로깅 및 감사가 적용됩니다.

FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED

필터 엔진은 스트림 데이터에 대한 필터 엔진의 데이터 버퍼가 가득 차면 이 플래그를 설정합니다. 이는 설명선의 classifyFn 설명선 함수가 버퍼 제한에 도달할 때까지 FWPS_STREAM_CALLOUT_IO_PACKET0 구조의 streamAction 멤버를 FWPS_STREAM_ACTION_NEED_MORE_DATA 설정하여 더 많은 데이터를 반복적으로 요청하는 경우에 발생할 수 있습니다. 이 플래그가 설정되면 콜아웃 드라이버의 classifyFn 콜아웃 함수가 모든 스트림 데이터를 허용하거나 차단해야 합니다.

이 플래그는 스트림 계층에서만 적용됩니다.

FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA

스트림의 연결이 끊긴 후 Stream 데이터가 요청되었습니다.

reserved

시스템에서 사용하도록 예약되었습니다. 콜아웃 드라이버는 이 멤버를 사용하면 안됩니다.

설명

필터 엔진은 FWPS_CLASSIFY_OUT0 구조체에 대한 포인터를 설명선의 classifyFn 설명선 함수에 전달합니다. 설명선 드라이버는 이 구조를 사용하여 호출자에게 데이터를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
머리글 fwpstypes.h(Fwpsk.h, Fwpmtypes.h, Fwpmk.h 포함)

추가 정보

FWPS_STREAM_CALLOUT_IO_PACKET0

런타임 필터링 계층 식별자

classifyFn