Share via


PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 콜백 함수(fltkernel.h)

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

구문

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;

NTSTATUS PfltInstanceQueryTeardownCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}

매개 변수

[in] FltObjects

현재 작업과 관련된 개체에 대한 불투명 포인터를 포함하는 FLT_RELATED_OBJECTS 구조체에 대한 포인터입니다.

[in] Flags

지정된 instance 쿼리 중단 콜백 루틴이 호출된 이유를 설명하는 플래그의 비트 마스크입니다. 현재 정의된 플래그가 없습니다.

반환 값

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

반환 코드 설명
STATUS_FLT_DO_NOT_DETACH
이 상태 값을 반환하면 미니필터 드라이버 instance 분리되지 않습니다. 오류 코드입니다.

설명

Minifilter 드라이버가 DriverEntry 루틴에서 FltRegisterFilter를 호출하여 자신을 등록하는 경우 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 유형의 루틴을 미니필터 드라이버의 InstanceQueryTeardownCallback 루틴으로 등록할 수 있습니다.

InstanceQueryTeardownCallback 루틴을 등록하기 위해 미니필터 드라이버는 미니필터 드라이버가 FltRegisterFilterRegistration 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 InstanceQueryTeardownCallback 멤버에 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 형식의 루틴 주소를 저장합니다.

필터 관리자는 미니필터 드라이버가 수동 분리 요청에 응답할 수 있도록 이 루틴을 호출합니다. 이러한 요청은 사용자 모드 애플리케이션이 FilterDetach 를 호출하거나 커널 모드 구성 요소가 FltDetachVolume을 호출할 때 수신됩니다.

이 루틴은 미니필터 드라이버가 언로드되거나 볼륨이 분리된 경우와 같이 자동 또는 필수 분리 요청에 대해 호출되지 않습니다.

이 루틴이 오류 또는 경고 NTSTATUS 코드(예: STATUS_FLT_DO_NOT_DETACH)를 반환하는 경우 미니필터 드라이버 instance 볼륨에서 분리되지 않습니다. 그렇지 않으면 instance 분리됩니다.

미니필터 드라이버가 InstanceQueryTeardownCallback 루틴을 정의하지 않으면 FilterDetach 또는 FltDetachVolume을 호출하여 인스턴스를 수동으로 분리할 수 없습니다.

요구 사항

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

추가 정보

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK