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 루틴을 등록하기 위해 미니필터 드라이버는 미니필터 드라이버가 FltRegisterFilter의 Registration 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 InstanceSetupCallback 멤버에 PFLT_INSTANCE_SETUP_CALLBACK 형식의 루틴 주소를 저장합니다.
필터 관리자는 새 볼륨이 탑재된 후 첫 번째 작업에서 이 루틴을 호출합니다.
필터 관리자는 미니필터 드라이버가 자동 또는 수동 첨부 파일 요청에 응답할 수 있도록 이 루틴을 호출합니다. 이 루틴이 오류 또는 경고 NTSTATUS 코드를 반환하는 경우 미니 필터 드라이버 instance 지정된 볼륨에 연결되지 않습니다. 그렇지 않으면 미니필터 드라이버 instance 지정된 볼륨에 연결됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | fltkernel.h(Fltkernel.h 포함) |
IRQL | PASSIVE_LEVEL |
추가 정보
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK