FwpsCalloutRegister1 함수(fwpsk.h)

FwpsCalloutRegister1 함수는 필터 엔진에 설명선이 등록됩니다.

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

구문

NTSTATUS FwpsCalloutRegister1(
  [in, out]       void                *deviceObject,
  [in]            const FWPS_CALLOUT1 *callout,
  [out, optional] UINT32              *calloutId
);

매개 변수

[in, out] deviceObject

이전에 설명선 드라이버에서 만든 디바이스 개체에 대한 포인터입니다. 설명선 드라이버가 디바이스 개체를 만드는 방법에 대한 자세한 내용은 디바이스 개체 만들기를 참조하세요.

[in] callout

필터 엔진에 설명선 등록에 필요한 데이터를 포함하는 상수 FWPS_CALLOUT1 구조체에 대한 포인터입니다.

[out, optional] calloutId

필터 엔진에서 설명선이 식별되는 런타임 식별자를 수신하는 UINT32 형식 변수에 대한 포인터입니다. 설명선 드라이버는 필터 엔진에서 설명선의 등록을 취소할 때 이 식별자를 FwpsCalloutUnregisterById0 함수에 전달합니다. 설명선 드라이버가 데이터 흐름을 필터링하는 경우 이 식별자를 FwpsFlowAssociateContext0FwpsFlowRemoveContext0 함수에도 전달합니다. 설명선 드라이버가 데이터 스트림에 데이터를 삽입하는 경우 이 식별자도 FwpsStreamInjectAsync0 함수에 전달합니다. 또한 필터 엔진은 이 식별자를 설명선 드라이버의 flowDeleteFn 설명선 함수에 전달합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

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

반환 코드 설명
STATUS_SUCCESS
콜아웃이 필터 엔진에 성공적으로 등록되었습니다.
STATUS_FWP_ALREADY_EXISTS
필터 엔진에 콜아웃을 등록할 수 없습니다. 설명선 매개 변수가 가리키는 FWPS_CALLOUT1 구조체의 calloutKey 멤버에 지정된 GUID와 동일한 식별자를 사용하여 필터 엔진에 설명선이 이미 등록되어 있습니다.
기타 상태 코드
오류가 발생했습니다.

설명

설명선 드라이버는 FwpsCalloutRegister1 함수를 호출하여 필터 엔진에 설명선 등록을 합니다. 콜아웃 드라이버는 필터 엔진이 현재 실행되고 있지 않더라도 언제든지 필터 엔진에 콜아웃을 등록할 수 있습니다.

설명선 드라이버가 설명선에 필터 엔진을 등록하기 전에 필터 작업에 대한 설명선 및 필터를 필터 엔진에 추가할 수 있습니다. 이 경우 작업 유형이 FWP_ACTION_CALLOUT_TERMINATING 또는 FWP_ACTION_CALLOUT_UNKNOWN 있는 필터는 FWP_ACTION_BLOCK 처리되고 설명선이 필터 엔진에 등록될 때까지 작업 유형이 FWP_ACTION_CALLOUT_INSPECTION 필터는 무시됩니다.

설명선 드라이버는 다음 중 하나를 호출하여 필터 엔진에서 설명선의 등록을 취소합니다. FwpsCalloutUnregisterById0 함수 또는 FwpsCalloutUnregisterByKey0 함수입니다. 이전에 필터 엔진에 등록된 모든 설명선이 성공적으로 등록 취소될 때까지 설명선 드라이버를 언로드할 수 없습니다.

요구 사항

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

추가 정보

FWPS_CALLOUT1

FwpsCalloutRegister0

FwpsCalloutRegister2

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

설명선 유형

flowDeleteFn