Fonction IoEnumerateRegisteredFiltersList (ntifs.h)
La routine IoEnumerateRegisteredFiltersList énumère les pilotes de filtre de système de fichiers qui se sont inscrits auprès du système.
Syntaxe
NTSTATUS IoEnumerateRegisteredFiltersList(
[out] PDRIVER_OBJECT *DriverObjectList,
[in] ULONG DriverObjectListSize,
[out] PULONG ActualNumberDriverObjects
);
Paramètres
[out] DriverObjectList
Pointeur vers un tableau alloué à l’appelant qui reçoit les pointeurs d’objet de pilote. Ce paramètre est facultatif et peut être NULL. (Voir la section Remarques suivante.)
[in] DriverObjectListSize
Taille, en octets, du tableau DriverObjectList . Ne peut pas être égal à zéro. (Voir la section Remarques suivante.)
[out] ActualNumberDriverObjects
Nombre réel d’objets de pilote trouvés. Notez que si le tableau dans DriverObjectList est trop petit, le nombre de pointeurs d’objet pilote copiés dans le tableau est inférieur à ActualNumberDriverObjects.
Valeur retournée
IoEnumerateRegisteredFiltersList peut retourner l’un des éléments suivants :
Code de retour | Description |
---|---|
STATUS_SUCCESS | L’appel à IoEnumerateRegisteredFiltersList a réussi. |
STATUS_BUFFER_TOO_SMALL | Le tableau dans DriverObjectList est trop petit pour contenir l’intégralité de la liste des objets de pilote. Dans ce cas, IoEnumerateRegisteredFiltersList copie autant de pointeurs d’objet de pilote que possible dans le tableau. |
Remarques
Un pilote de filtre de système de fichiers appelle IoEnumerateRegisteredFiltersList pour obtenir un tableau de pointeurs vers les objets de pilote pour tous les pilotes de filtre de système de fichiers qui ont appelé IoRegisterFsRegistrationChange.
Les pilotes de filtre sont énumérés par ordre décroissant de distance par rapport au système de fichiers de base. Le premier élément (index zéro) dans le tableau DriverObjectList représente le filtre attaché le plus loin du système de fichiers. La deuxième entrée concerne le filtre le plus proche, et ainsi de suite. La dernière entrée du tableau concerne le filtre le plus proche du système de fichiers de base.
IoEnumerateRegisteredFiltersList énumère uniquement les pilotes de filtre hérités ; il n’énumère pas les minifiltres. Pour énumérer à la fois les minifiltres et les filtres hérités, ou uniquement les minifiltres, appelez FltEnumerateFilterInformation.
Le pilote de filtre appelle généralement IoEnumerateRegisteredFiltersList deux fois : une fois pour obtenir le nombre d’objets de pilote dans la liste, et une fois pour obtenir la liste d’objets du pilote elle-même. Dans le premier appel, l’appelant doit définir le paramètre DriverObjectList sur NULL et DriverObjectListSize sur zéro. Dans le deuxième appel, DriverObjectList doit contenir un pointeur vers un tableau de pointeurs de taille appropriée, et DriverObjectListSize doit contenir la taille, en octets, de ce tableau.
IoEnumerateRegisteredFiltersList incrémente le nombre de références sur chaque objet de pilote dans la liste pointée par DriverObjectList. Ainsi, chaque appel réussi à IoEnumerateRegisteredFiltersList doit être mis en correspondance par un appel suivant à ObDereferenceObject pour chaque objet pilote de la liste. Si vous ne le faites pas, le système ne peut pas libérer ou supprimer ces objets de pilote en raison d’un nombre de références en attente.
Les minifilters doivent appeler FltEnumerateFilterInformation ou FltEnumerateFilters au lieu de IoEnumerateRegisteredFiltersList.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Correctif cumulatif pour Windows 2000 SP4 ; Windows Server 2003 SP1 |
Plateforme cible | Universal |
En-tête | ntifs.h (include Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour