FltEnumerateFilterInformation 함수(fltkernel.h)

FltEnumerateFilterInformation 루틴은 시스템의 등록된 모든 필터 드라이버(미니필터 및 레거시 필터 드라이버 포함)에 대한 정보를 제공합니다.

구문

NTSTATUS FLTAPI FltEnumerateFilterInformation(
  [in]  ULONG                    Index,
  [in]  FILTER_INFORMATION_CLASS InformationClass,
  [out] PVOID                    Buffer,
  [in]  ULONG                    BufferSize,
  [out] PULONG                   BytesReturned
);

매개 변수

[in] Index

정보가 요청된 필터 드라이버의 인덱스(0부터 시작)입니다. 이 매개 변수는 등록된 필터 드라이버의 전역 목록에서 필터를 식별합니다. 목록에 n 필터 드라이버가 포함된 경우 유효한 인덱스 값은 0에서 n-1까지입니다. Index 값이 이 범위를 초과하면 FltEnumerateFilterInformation은 STATUS_NO_MORE_ENTRIES 반환합니다.

[in] InformationClass

요청된 정보의 유형입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.

의미
FilterFullInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 드라이버에 대한 FILTER_FULL_INFORMATION 구조를 받습니다(레거시 필터 드라이버는 무시됨).
FilterAggregateBasicInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 또는 레거시 필터 드라이버에 대한 FILTER_AGGREGATE_BASIC_INFORMATION 구조를 받습니다. 이 InformationClass 값은 필터 관리자 롤업이 포함된 Microsoft Windows Server 2003 SP1 및 Windows XP SP2부터 사용할 수 있습니다. Windows XP SP2용 필터 관리자 롤업 패키지에 대한 자세한 내용은 Microsoft 기술 자료의 "Windows XP SP2용 필터 관리자 롤업 패키지" 914882 문서를 참조하세요.
FilterAggregateStandardInformation Buffer 매개 변수가 가리키는 버퍼는 미니필터 또는 레거시 필터 드라이버에 대한 FILTER_AGGREGATE_STANDARD_INFORMATION 구조를 받습니다. 이 InformationClass 값은 Windows Vista부터 사용할 수 있습니다.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

반환 값

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

반환 코드 설명
STATUS_BUFFER_TOO_SMALL
Buffer 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다. 오류 코드입니다.
STATUS_FLT_DELETING_OBJECT
일치하는 미니 필터 드라이버가 발견되었지만 철거되고 있습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER
InformationClass 매개 변수에 잘못된 값이 지정되었습니다. 예를 들어 Windows Vista 이전의 운영 체제에서 FilterAggregateStandardInformation 이 지정된 경우 루틴은 STATUS_INVALID_PARAMETER 반환합니다. 오류 코드입니다.
STATUS_NO_MORE_ENTRIES
등록된 필터 드라이버의 전역 목록에는 더 이상 항목이 없습니다. Index 매개 변수의 값이 필터 드라이버 수보다 크거나 같습니다. 경고 코드입니다.

설명

필터 관리자 롤업이 포함된 Microsoft Windows Server 2003 SP1 및 Windows XP SP2부터 FltEnumerateFilterInformation 은 파일 시스템 필터 드라이버("레거시 필터"라고도 함)와 미니필터 드라이버에 대한 정보를 제공합니다. 이전 버전의 Windows에서 FltEnumerateFilterInformation 은 미니필터 드라이버에 대한 정보만 제공합니다.

다음 의사 코드는 등록된 모든 필터 드라이버에 대한 필터 정보를 열거합니다.

#define InfoClass FilterAggregateStandardInformation   // Assumes Windows Vista or later operating system.

int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
 Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
 i++;
}

FltEnumerateFilterInformation 은 기본 파일 시스템에서 거리를 줄이는 순서대로 Buffer 매개 변수를 통해 등록된 필터 드라이버에 대한 정보를 반환합니다. 예를 들어 기본 파일 시스템 위에 n 필터 드라이버가 연결되어 있다고 가정합니다. 파일 시스템에서 가장 멀리 연결된 필터 드라이버에 대한 정보가 먼저 반환됩니다( Index 매개 변수 값이 0임). 다음으로 가장 멀리 연결된 필터 드라이버에 대한 정보는 Index 매개 변수 값이 1인 두 번째 필터 드라이버가 반환됩니다. 마지막으로 파일 시스템에 가장 가까운 필터 드라이버에 대한 정보가 마지막으로 반환됩니다( Index 매개 변수 값이 n-1임).

참고 필터 드라이버는 언제든지 등록할 수 있으므로 동일한 인덱스가 있는 FltEnumerateFilterInformation에 대한 두 호출이 동일한 결과를 반환하지 않을 수 있습니다.
 
등록된 모든 미니필터 드라이버를 열거하려면 FltEnumerateFilters를 호출합니다.

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

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

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

필터 관리자에 알려진 모든 볼륨에 대한 볼륨 정보를 나열하려면 FltEnumerateVolumeInformation을 호출합니다.

요구 사항

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

추가 정보

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList