PFLT_FILTER_UNLOAD_CALLBACK 콜백 함수(fltkernel.h)

미니필터 드라이버는 PFLT_FILTER_UNLOAD_CALLBACK 유형의 루틴을 미니필터 드라이버의 FilterUnloadCallback 루틴으로 등록할 수 있습니다.

구문

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

매개 변수

Flags

언로드 요청을 설명하는 플래그의 비트 마스크입니다. 이 매개 변수는 NULL 또는 다음일 수 있습니다.

플래그 의미
FLTFL_FILTER_UNLOAD_MANDATORY 필터 관리자는 이 플래그를 설정하여 언로드 작업이 필수임을 나타냅니다.

반환 값

이 콜백 루틴은 STATUS_SUCCESS 또는 다음과 같은 NTSTATUS 값을 반환합니다.

반환 코드 Description
STATUS_FLT_DO_NOT_DETACH 언로드 작업이 필수가 아닌 경우 이 상태 값을 반환하면 미니필터 드라이버가 언로드되지 않습니다. 오류 코드입니다.

설명

FltRegisterFilter를 호출하여 미니필터 드라이버가 자체 등록하는 경우 FilterUnloadCallback 루틴을 등록할 수 있습니다. 이 콜백 루틴을 등록하기 위해 미니필터 드라이버는 미니필터 드라이버가 FltRegisterFilter에 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 FilterUnloadCallback 필드에 PFLT_FILTER_UNLOAD_CALLBACK 형식의 루틴 주소를 저장합니다.

Minifilter 드라이버는 FilterUnloadCallback 루틴을 등록할 필요가 없습니다. 그러나 언로드 루틴을 등록하는 것이 좋습니다. 미니필터 드라이버가 FilterUnloadCallback 루틴을 등록하지 않으면 언로드할 수 없습니다.

미니필터 드라이버가 FilterUnloadCallback 루틴을 등록하는 경우:

  • 필터 관리자는 FilterUnloadCallback 루틴을 호출하여 필터 관리자가 미니필터 드라이버를 언로드하려고 한다는 것을 미니필터 드라이버에 알립니다.

  • 언로드 작업이 필수가 아니며 FilterUnloadCallback 루틴이 오류 또는 경고 NTSTATUS 코드(예: STATUS_FLT_DO_NOT_DETACH)를 반환하는 경우 미니필터 드라이버가 언로드되지 않습니다. 그렇지 않으면 미니필터 드라이버가 언로드됩니다.

  • FLTFL_FILTER_UNLOAD_MANDATORY 플래그가 Flags 매개 변수에 설정된 경우 언로드 작업은 필수이며 미니필터 드라이버는 자체적으로 언로드되는 것을 방지할 수 없습니다.

가능한 언로드 원인 및 미니필터 드라이버 언로드 프로세스에 대한 자세한 내용은 FilterUnloadCallback 루틴이 호출 되는 경우를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 fltkernel.h(Fltkernel.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

FLT_REGISTRATION

FltRegisterFilter