The FltEnumerateFilterInformation routine provides information about all the registered filter drivers (including minifilter and legacy filter drivers) in the system.
NTSTATUS FLTAPI FltEnumerateFilterInformation( ULONG Index, FILTER_INFORMATION_CLASS InformationClass, PVOID Buffer, ULONG BufferSize, PULONG BytesReturned );
Zero-based index of the filter driver for which the information is requested. This parameter identifies the filter in the global list of registered filter drivers. If the list contains n filter drivers, valid Index values range from 0 to n-1. If the Index value exceeds this range, FltEnumerateFilterInformation returns STATUS_NO_MORE_ENTRIES.
Type of information requested. This parameter can have one of the following values.
|FilterFullInformation||The buffer pointed to by the Buffer parameter receives a FILTER_FULL_INFORMATION structure for the minifilter driver (legacy filter drivers are ignored).|
|FilterAggregateBasicInformation||The buffer pointed to by the Buffer parameter receives a FILTER_AGGREGATE_BASIC_INFORMATION structure for the minifilter or legacy filter driver. This InformationClass value is available starting with Microsoft Windows Server 2003 SP1 and Windows XP SP2 with filter manager rollup. For more about the filter manager rollup package for Windows XP SP2, see article 914882, "The filter manager rollup package for Windows XP SP2," in the Microsoft Knowledge Base.|
|FilterAggregateStandardInformation||The buffer pointed to by the Buffer parameter receives a FILTER_AGGREGATE_STANDARD_INFORMATION structure for the minifilter or legacy filter driver. This InformationClass value is available starting with Windows Vista.|
Pointer to a caller-allocated buffer that receives the requested information. The type of the information returned in the buffer is defined by the InformationClass parameter.
Size, in bytes, of the buffer that the Buffer parameter points to. The caller should set this parameter according to the given InformationClass value.
Pointer to a caller-allocated variable that receives the number of bytes returned in the buffer that Buffer points to. If the input value of BufferSize is too small, FltEnumerateFilterInformation returns STATUS_BUFFER_TOO_SMALL and sets this variable to the number of bytes required to store the requested information. This parameter is required and cannot be NULL.
FltEnumerateFilterInformation returns STATUS_SUCCESS or an appropriate NTSTATUS value, such as one of the following:
||The buffer that the Buffer parameter points to is not large enough to store the requested information. This is an error code.|
||A matching minifilter driver was found, but it is being torn down. This is an error code.|
||An invalid value was specified for the InformationClass parameter. For example, if FilterAggregateStandardInformation is specified on operating systems prior to Windows Vista, the routine will return STATUS_INVALID_PARAMETER. This is an error code.|
||There are no more entries in the global list of registered filter drivers. (The value of the Index parameter is greater than or equal to the number of filter drivers.) This is a warning code.|
Starting with Microsoft Windows Server 2003 SP1 and Windows XP SP2 with filter manager rollup, FltEnumerateFilterInformation provides information about file system filter drivers (also called "legacy filters") as well as minifilter drivers. On earlier versions of Windows, FltEnumerateFilterInformation only provides information about minifilter drivers.
The following pseudocode enumerates filter information for all registered filter drivers.
#define InfoClass FilterAggregateStandardInformation // Assumes Windows Vista or later operating system.
To enumerate all registered legacy filter drivers, call IoEnumerateRegisteredFiltersList.
To enumerate all instances of a given minifilter driver, call FltEnumerateInstanceInformationByFilter.
To enumerate all minifilter driver instances on a given volume, call FltEnumerateInstanceInformationByVolume.
To list volume information for all volumes that are known to the Filter Manager, call FltEnumerateVolumeInformation.
|Header||fltkernel.h (include FltKernel.h)|