Partager via


Fonction FltEnumerateFilterInformation (fltkernel.h)

La routine FltEnumerateFilterInformation fournit des informations sur tous les pilotes de filtre inscrits (y compris les pilotes de filtre minifiltre et hérités) dans le système.

Syntaxe

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

Paramètres

[in] Index

Index de base zéro du pilote de filtre pour lequel les informations sont demandées. Ce paramètre identifie le filtre dans la liste globale des pilotes de filtre inscrits. Si la liste contient n pilotes de filtre, les valeurs d’index valides sont comprises entre 0 et n-1. Si la valeur d’index dépasse cette plage, FltEnumerateFilterInformation retourne STATUS_NO_MORE_ENTRIES.

[in] InformationClass

Type d’informations demandées. Ce paramètre peut avoir l’une des valeurs suivantes.

Valeur Signification
FilterFullInformation La mémoire tampon pointée vers par le paramètre Buffer reçoit une structure FILTER_FULL_INFORMATION pour le pilote de minifiltre (les pilotes de filtre hérités sont ignorés).
FilterAggregateBasicInformation La mémoire tampon pointée vers par le paramètre Buffer reçoit une structure FILTER_AGGREGATE_BASIC_INFORMATION pour le minifiltre ou le pilote de filtre hérité. Cette valeur InformationClass est disponible à partir de Microsoft Windows Server 2003 SP1 et Windows XP SP2 avec le correctif cumulatif du gestionnaire de filtres. Pour plus d’informations sur le package cumulatif du gestionnaire de filtres pour Windows XP SP2, consultez l’article 914882 « Package cumulatif du gestionnaire de filtres pour Windows XP SP2 » dans la Base de connaissances Microsoft.
FilterAggregateStandardInformation La mémoire tampon pointée vers le paramètre Buffer reçoit une structure FILTER_AGGREGATE_STANDARD_INFORMATION pour le minifiltre ou le pilote de filtre hérité. Cette valeur InformationClass est disponible à partir de Windows Vista.

[out] Buffer

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit les informations demandées. Le type des informations retournées dans la mémoire tampon est défini par le paramètre InformationClass .

[in] BufferSize

Taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre Buffer . L’appelant doit définir ce paramètre en fonction de la valeur InformationClass donnée.

[out] BytesReturned

Pointeur vers une variable allouée à l’appelant qui reçoit le nombre d’octets retournés dans la mémoire tampon vers laquelle la mémoire tampon pointe. Si la valeur d’entrée de BufferSize est trop petite, FltEnumerateFilterInformation retourne STATUS_BUFFER_TOO_SMALL et définit cette variable sur le nombre d’octets requis pour stocker les informations demandées. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

Valeur retournée

FltEnumerateFilterInformation retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_BUFFER_TOO_SMALL
La mémoire tampon vers laquelle pointe le paramètre Buffer n’est pas assez grande pour stocker les informations demandées. Il s’agit d’un code d’erreur.
STATUS_FLT_DELETING_OBJECT
Un pilote de minifiltre correspondant a été trouvé, mais il est en train d’être détruit. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
Une valeur non valide a été spécifiée pour le paramètre InformationClass . Par exemple, si FilterAggregateStandardInformation est spécifié sur les systèmes d’exploitation antérieurs à Windows Vista, la routine retourne STATUS_INVALID_PARAMETER. Il s’agit d’un code d’erreur.
STATUS_NO_MORE_ENTRIES
Il n’y a plus d’entrées dans la liste globale des pilotes de filtre inscrits. (La valeur du paramètre Index est supérieure ou égale au nombre de pilotes de filtre.) Il s’agit d’un code d’avertissement.

Remarques

À compter de Microsoft Windows Server 2003 SP1 et Windows XP SP2 avec cumul du gestionnaire de filtres, FltEnumerateFilterInformation fournit des informations sur les pilotes de filtre du système de fichiers (également appelés « filtres hérités ») ainsi que sur les pilotes de minifiltre. Sur les versions antérieures de Windows, FltEnumerateFilterInformation fournit uniquement des informations sur les pilotes de minifiltre.

Le pseudocode suivant énumère les informations de filtre pour tous les pilotes de filtre inscrits.

#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 retourne des informations sur les pilotes de filtre inscrits, via le paramètre Buffer , par ordre de diminution de la distance par rapport au système de fichiers sous-jacent. Par exemple, supposons que n pilotes de filtre sont attachés au-dessus d’un système de fichiers sous-jacent. Les informations sur le pilote de filtre attaché le plus loin du système de fichiers sont retournées en premier (avec une valeur de paramètre Index de 0). Les informations sur le pilote de filtre attaché le plus proche sont retournées en deuxième position (avec une valeur de paramètre Index de 1), et ainsi de suite. Enfin, les informations sur le pilote de filtre le plus proche du système de fichiers sont retournées en dernier (avec une valeur de paramètre Index de n-1).

Note Étant donné que les pilotes de filtre peuvent s’inscrire à tout moment, il est possible que deux appels à FltEnumerateFilterInformation avec le même index ne retournent pas le même résultat.
 
Pour énumérer tous les pilotes de minifiltre inscrits, appelez FltEnumerateFilters.

Pour énumérer tous les pilotes de filtre hérités inscrits, appelez IoEnumerateRegisteredFiltersList.

Pour énumérer toutes les instances d’un pilote de minifiltre donné, appelez FltEnumerateInstanceInformationByFilter.

Pour énumérer toutes les instances de pilote de minifiltre sur un volume donné, appelez FltEnumerateInstanceInformationByVolume.

Pour répertorier les informations de volume pour tous les volumes connus du Gestionnaire de filtres, appelez FltEnumerateVolumeInformation.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure FltKernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList