FltEnumerateFilterInformation, fonction (fltkernel.h)
La routine FltEnumerateFilterInformation fournit des informations sur tous les pilotes de filtre inscrits (y compris les pilotes de filtre minifilter 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 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 par le paramètre Buffer reçoit une structure FILTER_FULL_INFORMATION pour le pilote minifilter (les pilotes de filtre hérités sont ignorés). |
FilterAggregateBasicInformation | La mémoire tampon pointée par le paramètre tampon de reçoit une structure FILTER_AGGREGATE_BASIC_INFORMATION pour le pilote de filtre minifilter ou hérité. Cette valeur InformationClass est disponible à partir de Microsoft Windows Server 2003 SP1 et Windows XP SP2 avec cumul 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 par le paramètre Buffer reçoit une structure FILTER_AGGREGATE_STANDARD_INFORMATION pour le pilote de filtre minifilter ou hérité. Cette valeur InformationClass est disponible à partir de Windows Vista. |
[out] Buffer
Pointeur vers une mémoire tampon allouée par 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 tampon. L’appelant doit définir ce paramètre en fonction de la valeur InformationClass donnée.
[out] BytesReturned
Pointeur vers une variable allouée par l’appelant qui reçoit le nombre d’octets retournés dans la mémoire tampon vers laquelle 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 être NULL.
Valeur de retour
FltEnumerateFilterInformation retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
Mémoire tampon pour laquelle le paramètre tampon pointe vers n’est pas suffisamment grand pour stocker les informations demandées. Il s’agit d’un code d’erreur. |
|
Un pilote minifilter correspondant a été trouvé, mais il est 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 de système de fichiers (également appelés « filtres hérités ») ainsi que sur les pilotes minifilter. Sur les versions antérieures de Windows, FltEnumerateFilterInformation fournit uniquement des informations sur les pilotes minifilter.
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 tampon, afin de réduire la distance du système de fichiers sous-jacent. Par exemple, supposons qu’il existe n pilotes de filtre 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 deuxièmement (avec une valeur de paramètre d’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 minifilter donné, appelez FltEnumerateInstanceInformationByFilter.
Pour énumérer toutes les instances de pilote minifilter sur un volume donné, appelez FltEnumerateInstanceInformationByVolume.
Pour répertorier les informations de volume pour tous les volumes connus du Gestionnaire de filtres, appelez FltEnumerateVolumeInformation.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | fltkernel.h (include FltKernel.h) |
bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |
Voir aussi
FILTER_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter