PFLT_INSTANCE_SETUP_CALLBACK 콜백 함수(fltkernel.h)

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

통사론

PFLT_INSTANCE_SETUP_CALLBACK PfltInstanceSetupCallback;

NTSTATUS PfltInstanceSetupCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_SETUP_FLAGS Flags,
  [in] DEVICE_TYPE VolumeDeviceType,
  [in] FLT_FILESYSTEM_TYPE VolumeFilesystemType
)
{...}

매개 변수

[in] FltObjects

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

[in] Flags

인스턴스가 연결된 이유를 나타내는 플래그의 비트 마스크입니다. 다음 중 하나 이상이 될 수 있습니다.

기 의미
FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT(0x00000001) 인스턴스가 자동으로 연결됩니다. 미니 필터 드라이버가 방금 로드되어 모든 기존 볼륨에 연결되었거나 새로 탑재된 볼륨에 연결되고 있습니다.
FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT(0x00000002) 사용자 모드 애플리케이션이 FilterAttach 또는 filterAttachAtAltitude 호출했거나 커널 모드 구성 요소가 FltAttachVolume 또는 fltAttachVolumeAtAltitude 호출했기 때문에 인스턴스가 수동으로 연결되고
FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME(0x00000004) 인스턴스가 새로 탑재된 볼륨에 자동으로 연결됩니다.
FLTFL_INSTANCE_SETUP_DETACHED_VOLUME(0x00000008) 인스턴스가 분리된 볼륨에 연결되고 있습니다. 일부 이동식 미디어 드라이브에서 사용되는 FAT 및 CDFS와 같은 일부 파일 시스템에서는 분리된 후 볼륨을 다시 연결할 수 있습니다. 연결된 스토리지 스택이 없는 경우 볼륨이 분리됩니다. 이 상태의 볼륨은 일반적으로 열려 있는 파일이 있는 분리된 볼륨입니다.
FLTFL_INSTANCE_SETUP_DEV_VOLUME(0x00000010) 인스턴스가 개발자 볼륨으로 형식이 지정된 볼륨에 연결되고 있습니다. 파일 시스템 필터를 사용하면 관리자가 지정된 컴퓨터에서 볼륨을 신뢰할 필요가 없는 최적화를 사용할 수 있습니다. Windows 11 버전 22H2 9월 업데이트부터 사용할 수 있습니다.
FLTFL_INSTANCE_SETUP_TRUSTED_VOLUME(0x00000020) 지정된 컴퓨터의 관리자가 이 볼륨을 신뢰했으며 바이러스 백신 필터가 볼륨에 연결되지 않는 것과 같은 최적화를 사용하도록 설정하려고 했음을 나타냅니다. 이 정보는 지정된 컴퓨터의 레지스트리에 유지됩니다. 이는 파일 시스템 필터에서 관리자가 지정된 컴퓨터에서 볼륨을 신뢰해야 하는 최적화를 사용하도록 설정하는 데 사용할 수 있습니다. Windows 11 버전 22H2 9월 업데이트부터 사용할 수 있습니다.

[in] VolumeDeviceType

파일 시스템 볼륨의 디바이스 유형 . 다음 중 하나여야 합니다.

  • FILE_DEVICE_CD_ROM_FILE_SYSTEM(0x00000003)
  • FILE_DEVICE_DISK_FILE_SYSTEM(0x00000008)
  • FILE_DEVICE_NETWORK_FILE_SYSTEM(0x00000014)

[in] VolumeFilesystemType

볼륨의 파일 시스템 형식입니다. 가능한 값은 FLT_FILESYSTEM_TYPE나열됩니다.

반환 값

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

반환 코드 묘사
STATUS_FLT_DO_NOT_ATTACH 이 값을 반환하면 미니 필터 드라이버 인스턴스가 지정된 볼륨에 연결되지 않습니다. 오류 코드입니다.

발언

메모

PFLT_INSTANCE_SETUP_CALLBACK 구현에서 스레드 동기화 또는 프로세스 간 통신을 수행하지 마세요. 이러한 작업을 수행하면 교착 상태가 발생할 수 있습니다.

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

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

필터 관리자는 새 볼륨이 탑재된 후 첫 번째 작업에서 이 루틴을 호출합니다.

필터 관리자는 미니 필터 드라이버가 자동 또는 수동 첨부 파일 요청에 응답할 수 있도록 이 루틴을 호출합니다. 이 루틴이 오류 또는 경고 NTSTATUS 코드를 반환하는 경우 미니 필터 드라이버 인스턴스는 지정된 볼륨에 연결되지 않습니다. 그렇지 않으면 미니 필터 드라이버 인스턴스가 지정된 볼륨에 연결됩니다.

요구 사항

요구 값
대상 플랫폼 바탕 화면
헤더 fltkernel.h(Fltkernel.h 포함)
IRQL PASSIVE_LEVEL

참고 항목

FLT_REGISTRATION

FLT_RELATED_OBJECTS

filterAttach

filterAttachAtAltitude

FltAttachVolume

FltAttachVolumeAtAltitude

FltRegisterFilter

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

Dev Drive