FltEnumerateInstanceInformationByVolumeName 함수(fltkernel.h)

FltEnumerateInstanceInformationByVolumeName 루틴은 지정된 이름으로 볼륨에 연결된 미니필터 드라이버 인스턴스 및 레거시 필터 드라이버에 대한 정보를 제공합니다.

구문

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolumeName(
  [in]  PUNICODE_STRING            VolumeName,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

매개 변수

[in] VolumeName

필터 인스턴스를 열거할 볼륨의 이름입니다.

[in] Index

정보가 요청된 미니필터 드라이버 instance 또는 레거시 필터 드라이버의 인덱스(0부터 시작)입니다.

[in] InformationClass

미니필터 드라이버 instance 또는 레거시 필터 드라이버에 대해 반환할 정보 유형입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.

의미
InstanceBasicInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_BASIC_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다.
InstanceFullInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_FULL_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다.
InstancePartialInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_PARTIAL_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다.
InstanceAggregateStandardInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 드라이버 instance 또는 레거시 필터 드라이버에 대한 INSTANCE_AGGREGATE_STANDARD_INFORMATION 구조를 받습니다.

[out] Buffer

요청된 정보를 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 버퍼에 반환되는 정보의 형식은 InformationClass 매개 변수에 의해 정의됩니다.

[in] BufferSize

Buffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. 호출자는 지정된 InformationClass 값에 따라 이 매개 변수를 설정해야 합니다.

[out] BytesReturned

버퍼가 가리키는 버퍼에 반환된 바이트 수를 수신하는 호출자 할당 변수에 대한 포인터입니다. BufferSize의 입력 값이 너무 작으면 FltEnumerateInstanceInformationByVolumeNameSTATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 요청된 정보를 저장하는 데 필요한 바이트 수로 설정합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

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

반환 코드 설명
STATUS_BUFFER_TOO_SMALL
Buffer 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다.
STATUS_FLT_DELETING_OBJECT
일치하는 미니 필터 instance 발견되었지만 철거되고 있습니다. 레거시 필터 드라이버를 언로드할 수 없으므로 이 반환 값은 레거시 필터 드라이버에 적용되지 않습니다.
STATUS_INVALID_PARAMETER
InformationClass 매개 변수에 잘못된 값이 지정되었습니다.

또는

VolumeName 에 잘못된 볼륨 이름이 포함되어 있습니다.

STATUS_NO_MORE_ENTRIES
볼륨의 instance/필터 목록에 더 이상 항목이 없습니다.
STATUS_OBJECT_NAME_NOT_FOUND
VolumeName에 지정된 볼륨이 없습니다.
STATUS_OBJECT_PATH_NOT_FOUND
VolumeName에 지정된 볼륨의 경로가 없습니다.
STATUS_FLT_VOLUME_NOT_FOUND
VolumeName으로 지정된 볼륨에 연결된 필터 인스턴스가 없습니다.

또는

VolumeName에 지정된 볼륨이 시스템에서 제거되고 있습니다.

STATUS_FLT_INTERNAL_ERROR
VolumeName으로 지정된 볼륨이 등록되었지만 필터 인스턴스가 연결되어 있지 않습니다.

설명

Index 매개 변수를 사용하면 FltEnumerateInstanceInformationByVolumeNameVolumeName으로 지정된 볼륨의 instance/필터 목록에서 미니필터 드라이버 인스턴스 및 레거시 필터 드라이버 중에서 선택할 수 있습니다. instance/필터 목록의 미니필터 드라이버 인스턴스는 언제든지 변경할 수 있으므로 Index 및VolumeName 값이 동일한 FltEnumerateInstanceInformationByVolumeName에 대한 두 번의 호출은 동일한 결과를 반환하도록 보장되지 않습니다.

InformationClass 매개 변수 값이 InstanceAggregateStandardInformation인 경우 이 루틴은 레거시 필터 드라이버 정보와 미니 필터 드라이버 instance 정보를 모두 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
IRQL <= APC_LEVEL

추가 정보

FltEnumerateInstanceInformationByDeviceObject

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume