다음을 통해 공유


TcAddFilter 함수(traffic.h)

TcAddFilter 함수는 필터와 일치하는 패킷을 연결된 흐름으로 전달하도록 허용하는 기존 흐름과 새 필터를 연결합니다.

필터에는 패턴과 마스크가 포함됩니다. 패턴은 특정 매개 변수 값을 지정하고 마스크는 지정된 필터에 적용되는 매개 변수 및 매개 변수 하위 필드를 지정합니다. 패턴/마스크 조합이 패킷 집합에 적용되면 일치하는 패킷이 해당 필터가 연결된 흐름으로 전달됩니다.

트래픽 제어는 클라이언트가 추가된 필터를 참조할 수 있는 pFilterHandle 매개 변수에서 새로 추가된 필터에 대한 핸들을 반환합니다. 콜백 루틴이 완료되지 않은 TcAddFlow 또는 TcModifyFlow 요청을 처리하는 흐름과 같은 보류 중인 흐름은 연결된 필터를 가질 수 없습니다. 완료되고 안정적인 흐름만 연결된 필터를 적용할 수 있습니다.

필터와 흐름 간의 관계는 여러 대 일입니다. 단일 흐름에 여러 필터를 적용할 수 있습니다. 그러나 필터는 하나의 흐름에만 적용할 수 있습니다. 예를 들어 흐름 A에는 필터 X, Y 및 Z가 적용될 수 있지만 흐름 A가 활성화된 한 X, Y 및 Z 필터는 다른 흐름에 적용할 수 없습니다.

구문

ULONG TcAddFilter(
  [in]  HANDLE         FlowHandle,
  [in]  PTC_GEN_FILTER pGenericFilter,
  [out] PHANDLE        pFilterHandle
);

매개 변수

[in] FlowHandle

TcAddFlow 함수에 대한 이전 호출에서 받은 흐름에 대한 핸들입니다.

[in] pGenericFilter

설치할 필터에 대한 설명에 대한 포인터입니다.

[out] pFilterHandle

트래픽 제어가 필터 핸들을 반환하는 버퍼에 대한 포인터입니다. 이 필터 핸들은 추가된 필터를 참조하기 위해 후속 호출에서 클라이언트에서 사용됩니다.

반환 값

반환 코드 설명
NO_ERROR
함수가 오류 없이 실행되었습니다.
ERROR_INVALID_HANDLE
흐름 핸들이 잘못되었습니다.
ERROR_INVALID_PARAMETER
매개 변수가 잘못되었습니다.
ERROR_INVALID_ADDRESS_TYPE
잘못된 주소 유형이 제공되었습니다.
ERROR_DUPLICATE_FILTER
이 인터페이스의 흐름에 동일한 필터가 있습니다.
참고 Windows Vista에서는 이 코드가 반환되지 않습니다.
 
ERROR_FILTER_CONFLICT
충돌하는 필터가 이 인터페이스의 흐름에 있습니다.
참고 Windows Vista에서는 이 코드가 반환되지 않습니다.
 
ERROR_NOT_ENOUGH_MEMORY
시스템이 메모리가 부족합니다.
준비 ERROR_NOT
흐름이 설치, 수정 또는 삭제되고 있으며 필터를 허용하는 상태가 아닙니다.

설명

필터는 서로 다른 형식일 수 있습니다. 일반적으로 서로 다른 네트워크 계층에 속하는 패킷을 필터링하는 데 사용됩니다. 인터페이스에 설치된 필터 형식은 일반적으로 인터페이스와 연결된 네트워크 계층 주소의 주소 유형에 해당합니다. 필터 구조에서 주소 유형을 지정해야 합니다.

요청된 필터와의 충돌 가능성과 흐름과 이미 연결된 필터를 포함하여 다양한 이유로 필터가 거부될 수 있습니다. 사용자가 TcAddFilter 함수에 대한 거부 이유를 진단하는 데 도움이 되도록 트래픽 제어와 관련된 오류 코드가 제공됩니다.

참고TcAddFilter 함수를 사용하려면 관리 권한이 필요합니다.
 
Windows Vista에서 겹치는 필터와 동일한 필터를 만들 수 있습니다. 이러한 상황에서는 보다 구체적인 필터가 우선합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 traffic.h
라이브러리 Traffic.lib
DLL Traffic.dll

추가 정보

TcAddFlow