FltGetVolumeInstanceFromName 함수(fltkernel.h)

FltGetVolumeInstanceFromName 루틴은 지정된 볼륨에서 지정된 미니필터 드라이버 instance 대한 불투명 instance 포인터를 반환합니다.

구문

NTSTATUS FLTAPI FltGetVolumeInstanceFromName(
  [in, optional] PFLT_FILTER      Filter,
  [in]           PFLT_VOLUME      Volume,
  [in, optional] PCUNICODE_STRING InstanceName,
  [out]          PFLT_INSTANCE    *RetInstance
);

매개 변수

[in, optional] Filter

instance 소유하는 미니필터 드라이버에 대한 불투명 필터 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[in] Volume

instance 연결된 볼륨에 대한 불투명 포인터입니다. 유효한 볼륨 핸들이어야 합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다. (이 매개 변수를 잘못된 값으로 설정하면 시스템이 확인된 빌드에서 ASSERT로 설정됩니다.)

[in, optional] InstanceName

볼륨의 instance 대한 instance 이름을 포함하는 호출자가 할당한 UNICODE_STRING 구조체에 대한 포인터입니다. (이 값은 instance 만들 때 FltAttachVolume 또는 FltAttachVolumeAtAltitude에 전달된 InstanceName 값입니다.) 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. NULL인 경우 FltGetVolumeInstanceFromName은 발견된 가장 일치하는 instance 반환합니다.

[out] RetInstance

Filter, VolumeInstanceName의 값과 일치하는 instance 대한 불투명 instance 포인터를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

FltGetVolumeInstanceFromName 은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_FLT_DELETING_OBJECT
instance 철거되고 있습니다. 오류 코드입니다.
STATUS_FLT_INSTANCE_NOT_FOUND
일치하는 instance 없습니다. 오류 코드입니다.

설명

FltGetVolumeInstanceFromName은 최상위 instance 시작하여 고도를 줄이는 순서로 Volume 매개 변수에 지정된 볼륨에 연결된 미니필터 드라이버 인스턴스 목록을 검색합니다. 이상의 instance Filter, VolumeInstanceName 매개 변수의 지정된 값과 일치하는 경우 FltGetVolumeInstanceFromName은 발견된 가장 일치하는 instance 반환합니다.

"고도"라는 용어는 볼륨에 대한 미니필터 드라이버 instance 스택에서 instance 차지하거나 차지해야 하는 위치를 나타냅니다. 고도가 높을수록 스택의 기본 파일 시스템에서 instance 멀리 떨어져 있습니다. 지정된 볼륨의 지정된 고도에서 하나의 instance만 연결할 수 있습니다.

고도는 0에서 9까지의 10진수 이상으로 구성된 계산된 유니코드 문자열인 고도 문자열에 의해 지정되며 단일 소수점을 포함할 수 있습니다. 예를 들어 "100.123456" 및 "03333"은 유효한 고도 문자열입니다.

문자열 "03333"은 "100.123456"보다 높은 고도를 나타냅니다. 선행 및 후행 0은 무시됩니다. 즉, 고도가 "03333"인 instance 고도가 "100.123456"인 instance 보다 기본 파일 시스템에서 더 멀리 떨어져 있습니다. 그러나 이 비교는 두 인스턴스가 동일한 볼륨에 연결된 경우에만 의미가 있습니다.

FltGetVolumeInstanceFromNameRetInstance 매개 변수에 반환된 불투명 instance 포인터에 대한 런다운 참조를 추가합니다. 이 포인터가 더 이상 필요하지 않으면 호출자는 FltObjectDereference를 호출하여 해제해야 합니다. 따라서 FltGetVolumeInstanceFromName 에 대한 모든 성공적인 호출은 FltObjectDereference에 대한 후속 호출과 일치해야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

추가 정보

FltAttachVolume

FltAttachVolumeAtAltitude

FltObjectDereference

UNICODE_STRING