FwpsFlowAssociateContext0 함수(fwpsk.h)

FwpsFlowAssociateContext0 함수는 설명선 드라이버 정의 컨텍스트를 데이터 흐름과 연결합니다.

참고FwpsFlowAssociateContext0특정 버전의 FwpsFlowAssociateContext입니다. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요.
 

구문

NTSTATUS FwpsFlowAssociateContext0(
  [in] UINT64 flowId,
  [in] UINT16 layerId,
  [in] UINT32 calloutId,
  [in] UINT64 flowContext
);

매개 변수

[in] flowId

컨텍스트를 연결할 데이터 흐름을 지정하는 런타임 식별자입니다. 데이터 흐름에 대한 런타임 식별자는 콜아웃 드라이버의 classifyFn 콜아웃 함수에 전달된 FWPS_METADATA_FIELD_FLOW_HANDLE 메타데이터 값을 통해 콜아웃 드라이버에 제공됩니다.

[in] layerId

컨텍스트가 연결된 필터링 계층의 런타임 식별자입니다. 컨텍스트는 지정된 필터링 계층과만 연결됩니다. 자세한 내용은 런타임 필터링 계층 식별자를 참조하세요.

[in] calloutId

필터 엔진의 콜아웃에 대한 런타임 식별자입니다. 이 식별자는 설명선 드라이버가 FwpsCalloutRegister0, FwpsCalloutRegister1 또는 FwpsCalloutRegister2 함수를 호출하여 콜아웃을 필터 엔진에 등록할 때 반환되었습니다.

[in] flowContext

데이터 흐름과 연결할 설명선 드라이버 정의 컨텍스트입니다. 이 매개 변수는 0이 아니어야 합니다. 이 컨텍스트는 필터 엔진에 불투명합니다.

반환 값

FwpsFlowAssociateContext0 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
컨텍스트가 데이터 흐름과 성공적으로 연결되었습니다.
STATUS_INVALID 매개 변수
flowContext 매개 변수가 NULL이거나 calloutID 매개 변수에 지정된 콜아웃에 flowDeleteFn이 등록되어 있지 않습니다.
STATUS_OBJECT_NAME_EXISTS
컨텍스트가 이미 데이터 흐름과 연결되어 있습니다. 이 경우 설명선 드라이버는 먼저 FwpsFlowRemoveContext0 함수를 호출하여 기존 컨텍스트를 제거한 다음 FwpsFlowAssociateContext0 함수를 다시 호출하여 새 컨텍스트를 데이터 흐름과 연결해야 합니다.
기타 상태 코드
오류가 발생했습니다.

설명

데이터 흐름을 필터링할 때 설명선 드라이버는 FwpsFlowAssociateContext0 함수를 호출하여 컨텍스트를 데이터 흐름과 연결할 수 있습니다. 그런 다음 이 컨텍스트를 사용하여 해당 데이터 흐름에 대한 설명선의 classifyFn 설명선 함수에 대한 필터 엔진의 호출 간에 드라이버별 데이터 또는 상태 정보를 유지할 수 있습니다.

flowDeleteFn 콜아웃 함수를 등록한 layerId 매개 변수로 식별되는 계층의 필터 엔진에 콜아웃이 있어야 합니다. 그렇지 않으면 FwpsFlowAssociateContext0 함수에 대한 호출은 STATUS_INVALID_PARAMETER 반환합니다. 필터 엔진은 흐름이 종료될 때 flowDeleteFn 설명선 함수를 호출하여 설명선 드라이버가 흐름과 연결된 컨텍스트를 클린 수 있도록 합니다.

동일한 흐름에 대해 FwpsFlowAssociateContext0 을 여러 번 호출할 수 있습니다. 각 호출에서 다른 설명선과 다른 컨텍스트(추가된 설명선당 하나의 컨텍스트)를 지정해야 합니다.

FwpsFlowAssociateContext0 함수는 단일 컨텍스트를 추가된 단일 설명선과 연결합니다.

여러 컨텍스트를 흐름과 연결할 수 있습니다. 그러나 각 컨텍스트는 다른 설명선과 연결되어야 합니다. 새 설명선은 이전 설명선과 동일한 계층 또는 다른 계층에 있을 수 있습니다.

자세한 내용 및 샘플 코드는 컨텍스트를 Data Flow 연결Windows 필터링 플랫폼 샘플을 참조하세요.

요구 사항

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

추가 정보

컨텍스트를 Data Flow 연결

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

Windows 필터링 플랫폼 샘플

classifyFn

flowDeleteFn