Fonction FltEnumerateInstanceInformationByVolume (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 du pilote minifilter instance ou pilote de filtre hérité pour lequel les informations sont demandées.
[in] InformationClass
Type d’informations à retourner pour le pilote minifilter instance 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 Buffer reçoit une structure INSTANCE_BASIC_INFORMATION pour un minifiltre instance. 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 un minifiltre instance. Les pilotes de filtre hérités sont ignorés. |
InstancePartialInformation | La mémoire tampon vers laquelle pointe le paramètre Buffer reçoit une structure INSTANCE_PARTIAL_INFORMATION pour un minifiltre instance. Les pilotes de filtre hérités sont ignorés. |
InstanceAggregateStandardInformation | La mémoire tampon vers laquelle pointe le paramètre Buffer reçoit une structure INSTANCE_AGGREGATE_STANDARD_INFORMATION pour un pilote minifilter instance 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 à 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, 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 retournée
FltEnumerateInstanceInformationByVolume 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 suffisamment grande pour stocker les informations demandées. Il s’agit d’un code d’erreur. |
|
Un minifiltre correspondant instance a été trouvé, mais il est en cours de déclassement. 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. |
|
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 antérieur à 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 instance/filtre du volume. Il s’agit d’un code d’avertissement. |
Remarques
L’utilisation du paramètre Index permet simplement à FltEnumerateInstanceInformationByVolume de sélectionner parmi les instances de pilote minifilter et les pilotes de filtre hérités dans la liste instance/filtre pour le volume spécifié par Volume. Étant donné que les instances de pilotes minifilter dans la liste instance/filtre peuvent changer à tout moment, deux appels à FltEnumerateInstanceInformationByVolume avec les mêmes valeurs Index et Volume ne sont pas garantis pour retourner le même résultat.
À compter de Windows Vista, cette routine peut retourner des informations sur le pilote de filtre hérité et le pilote minifilter instance des informations 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 des 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.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (incluez FltKernel.h) |
Bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |
Voir aussi
FltEnumerateInstanceInformationByFilter