Partager via


FltEnumerateInstanceInformationByFilter, fonction (fltkernel.h)

La routine FltEnumerateInstanceInformationByFilter fournit des informations sur les instances d’un pilote minifilter donné.

Syntaxe

NTSTATUS FLTAPI FltEnumerateInstanceInformationByFilter(
  [in]  PFLT_FILTER                Filter,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Paramètres

[in] Filter

Pointeur de filtre opaque pour l’appelant.

[in] Index

Index de base zéro de l’instance pour laquelle les informations sont demandées.

[in] InformationClass

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

Valeur Signification
InstanceBasicInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_BASIC_INFORMATION pour l’instance.
InstanceFullInformation La mémoire tampon pointée par le paramètre de tampon reçoit une structure INSTANCE_FULL_INFORMATION pour l’instance.
InstancePartialInformation La mémoire tampon pointée par le paramètre tampon reçoit une structure INSTANCE_PARTIAL_INFORMATION pour l’instance.
InstanceAggregateStandardInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_AGGREGATE_STANDARD_INFORMATION pour l’instance. La partie LegacyFilter de la structure n’est pas utilisée. Cette structure 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, FltEnumerateInstanceInformationByFilter 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

FltEnumerateInstanceInformationByFilter retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme l’une des opérations suivantes :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL
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.
STATUS_FLT_DELETING_OBJECT
Une instance correspondante a été trouvée, mais elle est détruite. 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 un système d’exploitation antérieur à 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 d’instances du pilote minifilter. Il s’agit d’un code d’avertissement.

Remarques

Le paramètre Index est simplement un moyen pour FltEnumerateInstanceInformationByFilter de sélectionner parmi les instances de la liste d’instances du pilote minifilter spécifié par Filter. Étant donné que les instances de pilote minifilter de la liste d’instances peuvent changer à tout moment, deux appels à FltEnumerateInstanceInformationByFilter avec le même Index et Valeurs de filtre ne sont pas garantis pour retourner le même résultat.

Pour énumérer tous les pilotes minifilter inscrits, appelez FltEnumerateFilters.

Pour répertorier les informations de filtre pour tous les pilotes minifilter inscrits, appelez FltEnumerateFilterInformation.

Pour obtenir des informations de filtre pour un pilote minifilter donné, appelez FltGetFilterInformation.

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

Pour énumérer les instances de tous les pilotes minifilter sur tous les volumes, appelez FltEnumerateInstances.

Pour énumérer tous les volumes connus du Gestionnaire de filtres, appelez FltEnumerateVolumes.

.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include FltKernel.h)
bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION