다음을 통해 공유


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

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

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

[in] VolumeDeviceType

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

  • FILE_DEVICE_CD_ROM_FILE_SYSTEM(0x00000002)
  • 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 이 값을 반환하면 미니필터 드라이버 instance 지정된 볼륨에 연결되지 않습니다. 오류 코드입니다.

설명

참고

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

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

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

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

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

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 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