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 |