FwpsCalloutRegister2 함수(fwpsk.h)
FwpsCalloutRegister2 함수는 필터 엔진에 설명선이 등록됩니다.
구문
NTSTATUS FwpsCalloutRegister2(
[in, out] void *deviceObject,
[in] const FWPS_CALLOUT2 *callout,
[out, optional] UINT32 *calloutId
);
매개 변수
[in, out] deviceObject
이전에 설명선 드라이버에서 만든 디바이스 개체에 대한 포인터입니다. 설명선 드라이버가 디바이스 개체를 만드는 방법에 대한 자세한 내용은 디바이스 개체 만들기를 참조하세요.
[in] callout
필터 엔진에 설명선 등록에 필요한 데이터를 포함하는 상수 FWPS_CALLOUT2 구조체에 대한 포인터입니다.
[out, optional] calloutId
필터 엔진에서 설명선이 식별되는 런타임 식별자를 수신하는 UINT32 형식 변수에 대한 포인터입니다. 설명선 드라이버는 필터 엔진에서 설명선의 등록을 취소할 때 이 식별자를 FwpsCalloutUnregisterById0 함수에 전달합니다. 설명선 드라이버가 데이터 흐름을 필터링하는 경우 이 식별자를 FwpsFlowAssociateContext0 및 FwpsFlowRemoveContext0 함수에도 전달합니다. 설명선 드라이버가 데이터 스트림에 데이터를 삽입하는 경우 이 식별자도 FwpsStreamInjectAsync0 함수에 전달합니다. 또한 필터 엔진은 이 식별자를 설명선 드라이버의 flowDeleteFn 설명선 함수에 전달합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
FwpsCalloutRegister2 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
콜아웃이 필터 엔진에 성공적으로 등록되었습니다. |
|
필터 엔진에 콜아웃을 등록할 수 없습니다. 설명선 매개 변수가 가리키는 FWPS_CALLOUT2 구조체의 calloutKey 멤버에 지정된 GUID와 동일한 식별자를 사용하여 필터 엔진에 설명선이 이미 등록되어 있습니다. |
|
오류가 발생했습니다. |
설명
설명선 드라이버는 FwpsCalloutRegister2 함수를 호출하여 필터 엔진에 설명선 등록을 합니다. 콜아웃 드라이버는 필터 엔진이 현재 실행되고 있지 않더라도 언제든지 필터 엔진에 콜아웃을 등록할 수 있습니다.
설명선 드라이버가 설명선에 필터 엔진을 등록하기 전에 필터 작업에 대한 설명선 및 필터를 필터 엔진에 추가할 수 있습니다. 이 경우 작업 유형이 FWP_ACTION_CALLOUT_TERMINATING 또는 FWP_ACTION_CALLOUT_UNKNOWN 있는 필터는 FWP_ACTION_BLOCK 처리되고 설명선이 필터 엔진에 등록될 때까지 작업 유형이 FWP_ACTION_CALLOUT_INSPECTION 필터는 무시됩니다.
설명선 드라이버는 다음 중 하나를 호출하여 필터 엔진에서 설명선의 등록을 취소합니다. FwpsCalloutUnregisterById0 함수 또는 FwpsCalloutUnregisterByKey0 함수입니다. 이전에 필터 엔진에 등록된 모든 설명선이 성공적으로 등록 취소될 때까지 설명선 드라이버를 언로드할 수 없습니다.
이 함수는 기본적으로 이전 버전 인 FwpsCalloutRegister1과 동일합니다. 유일한 차이점은 설명선 매개 변수가 가리키는 업데이트된 FWPS_CALLOUT2 구조체입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 시작해서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | fwpsk.h(Fwpsk.h 포함) |
라이브러리 | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |