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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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).
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
FltEnumerateInstanceInformationByFilter