FwpsCalloutRegister1 함수(fwpsk.h)
FwpsCalloutRegister1 함수는 필터 엔진에 설명선이 등록됩니다.
통사론
NTSTATUS FwpsCalloutRegister1(
[in, out] void *deviceObject,
[in] const FWPS_CALLOUT1 *callout,
[out, optional] UINT32 *calloutId
);
매개 변수
[in, out] deviceObject
설명선 드라이버에서 이전에 만든 디바이스 개체에 대한 포인터입니다. 설명선 드라이버가 디바이스 개체를 만드는 방법에 대한 자세한 내용은 Device Object만들기를 참조하세요.
[in] callout
필터 엔진에 설명선 등록에 필요한 데이터를 포함하는 상수 FWPS_CALLOUT1 구조체에 대한 포인터입니다.
[out, optional] calloutId
필터 엔진에서 설명선이 식별되는 런타임 식별자를 수신하는 UINT32 형식 변수에 대한 포인터입니다. 설명선 드라이버는 필터 엔진에서 설명선 등록을 취소할 때 FwpsCalloutUnregisterById0 함수에 이 식별자를 전달합니다. 설명선 드라이버가 데이터 흐름을 필터링하는 경우 이 식별자를 FwpsFlowAssociateContext0 전달하고 FwpsFlowRemoveContext0 함수를. 설명선 드라이버가 데이터 스트림에 데이터를 삽입하는 경우 이 식별자도 FwpsStreamInjectAsync0 함수에 전달합니다. 또한 필터 엔진은 설명선 드라이버의 flowDeleteFn 설명선 함수에 이 식별자를 전달합니다. 이 매개 변수는 선택 사항이며 NULL 수 있습니다.
반환 값
FwpsCalloutRegister1 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 묘사 |
---|---|
|
설명선이 필터 엔진에 성공적으로 등록되었습니다. |
|
설명선은 필터 엔진에 등록할 수 없습니다. 설명선은 설명선 매개 변수가 가리키는 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 |