Partager via


FltEnumerateInstanceInformationByVolume, fonction (fltkernel.h)

La routine FltEnumerateInstanceInformationByVolume fournit des informations sur les instances de pilotes minifilter et les pilotes de filtre hérités (Windows Vista uniquement) attachés à un volume donné.

Syntaxe

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Paramètres

[in] Volume

Pointeur opaque pour le volume.

[in] Index

Index de base zéro de l’instance de pilote minifilter ou du pilote de filtre hérité pour lequel les informations sont demandées.

[in] InformationClass

Type d’informations à retourner pour l’instance de pilote minifilter ou le pilote de filtre hérité. Ce paramètre peut avoir l’une des valeurs suivantes.

Valeur Signification
InstanceBasicInformation La mémoire tampon pointée par le paramètre tampon de reçoit une structure INSTANCE_BASIC_INFORMATION pour une instance de minifilter. Les pilotes de filtre hérités sont ignorés.
InstanceFullInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_FULL_INFORMATION pour une instance de minifilter. Les pilotes de filtre hérités sont ignorés.
InstancePartialInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_PARTIAL_INFORMATION pour une instance de minifilter. Les pilotes de filtre hérités sont ignorés.
InstanceAggregateStandardInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_AGGREGATE_STANDARD_INFORMATION pour une instance de pilote minifilter ou un pilote de filtre hérité. 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, FltEnumerateInstanceInformationByVolume 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

FltEnumerateInstanceInformationByVolume retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des 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 de minifilter correspondante a été trouvée, mais elle est détruite. Il s’agit d’un code d’erreur. Notez que cette valeur de retour ne s’applique pas aux pilotes de filtre hérités, car les pilotes de filtre hérités ne peuvent pas être déchargés.
STATUS_INVALID_PARAMETER
Une valeur non valide a été spécifiée pour le paramètre InformationClass. Par exemple, si InstanceAggregateStandardInformation est spécifié sur un système d’exploitation avant 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/de filtres du volume. Il s’agit d’un code d’avertissement.

Remarques

L’utilisation du paramètre Index est simplement un moyen pour FltEnumerateInstanceInformationByVolume de sélectionner parmi les instances de pilote minifilter et les pilotes de filtre hérités dans la liste d’instances/filtres pour le volume spécifié par Volume. Étant donné que les instances de pilote minifilter dans la liste d’instances/filtres peuvent changer à tout moment, deux appels à FltEnumerateInstanceInformationByVolume avec le même d’index et valeurs de volume ne sont pas garantis pour retourner le même résultat.

À compter de Windows Vista, cette routine peut retourner les informations de pilote de filtre héritées et les informations d’instance de pilote minifilter lorsque la valeur du paramètre InformationClass est InstanceAggregateStandardInformation. Pour les systèmes d’exploitation antérieurs, cette routine ne peut pas retourner les informations de filtre héritées, car la structure INSTANCE_AGGREGATE_STANDARD_INFORMATION n’est pas disponible.

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 d’un pilote minifilter donné, appelez FltEnumerateInstanceInformationByFilter.

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

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION