FltEnumerateInstances 함수(fltkernel.h)

FltEnumerateInstances 루틴은 지정된 미니필터 드라이버 또는 볼륨에 대한 미니필터 드라이버 인스턴스를 열거합니다.

구문

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

매개 변수

[in, optional] Volume

호출자가 미니필터 드라이버 인스턴스를 열거하려는 볼륨에 대한 불투명 포인터입니다. NULL이면 모든 볼륨의 인스턴스가 열거됩니다. 필터NULL인 경우 NULL이 아니어야 합니다.

[in, optional] Filter

인스턴스를 열거할 미니필터 드라이버에 대한 불투명 필터 포인터입니다. NULL이면 모든 미니필터 드라이버의 인스턴스가 열거됩니다. 볼륨NULL인 경우 NULL이 아니어야 합니다.

[out] InstanceList

불투명 instance 포인터 배열을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다.

[in] InstanceListSize

InstanceList가 가리키는 버퍼가 보유할 수 있는 불투명 instance 포인터 수입니다.

[out] NumberInstancesReturned

InstanceList가 가리키는 배열에 반환된 불투명 instance 포인터 수를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. InstanceListSize가 너무 작으면 FltEnumerateInstances는 STATUS_BUFFER_TOO_SMALL 반환하고 NumberInstancesReturned을 설정하여 일치하는 인스턴스 수를 가리킵니다.

반환 값

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

반환 코드 설명
STATUS_BUFFER_TOO_SMALL
InstanceList 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER
볼륨필터 는 모두 NULL일 수 없습니다. 오류 코드입니다.

설명

instance 목록의 미니필터 드라이버 인스턴스는 언제든지 변경할 수 있으므로 볼륨필터 값이 동일한 FltEnumerateInstances에 대한 두 번의 호출은 동일한 결과를 반환하도록 보장되지 않습니다.

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

등록된 모든 미니필터 드라이버를 열거하려면 FltEnumerateFilters를 호출합니다.

필터 관리자에 알려진 모든 볼륨을 열거하려면 FltEnumerateVolumes를 호출합니다.

등록된 모든 미니필터 드라이버에 대한 필터 정보를 나열하려면 FltEnumerateFilterInformation을 호출합니다.

지정된 미니필터 드라이버에 대한 필터 정보를 얻으려면 FltGetFilterInformation을 호출합니다.

지정된 미니필터 드라이버의 모든 인스턴스를 열거하려면 FltEnumerateInstanceInformationByFilter를 호출합니다.

지정된 볼륨의 모든 미니필터 드라이버 인스턴스를 열 거하려면 FltEnumerateInstanceInformationByVolume을 호출합니다.

요구 사항

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

추가 정보

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference