Partager via


Fonction FltGetVolumeProperties (fltkernel.h)

La routine FltGetVolumeProperties retourne des informations de propriété de volume pour le volume donné.

Syntaxe

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

Paramètres

[in] Volume

Pointeur opaque pour le volume. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[out] VolumeProperties

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit les informations de propriété de volume demandées. Si Longueur est égale à zéro en entrée, ce paramètre est ignoré. Sinon, ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

VolumePropertiesLength

Taille, en octets, de la mémoire tampon pointée vers le paramètre VolumeProperties . Ce paramètre est facultatif et peut être égal à zéro. S’il est égal à zéro, LengthReturned reçoit la taille, en octets, de la mémoire tampon nécessaire pour contenir les propriétés du volume. Si ce paramètre n’est pas nul, il doit être au moins la valeur sizeof(FLT_VOLUME_PROPERTIES).

[out] LengthReturned

Pointeur vers une variable allouée par l’appelant qui reçoit la taille, en octets, des informations retournées dans VolumeProperties. Si FltGetVolumeProperties retourne STATUS_BUFFER_TOO_SMALL, ou si Length est égal à zéro en entrée, ce paramètre reçoit à la place la taille, en octets, de la mémoire tampon nécessaire pour contenir les propriétés du volume. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

Valeur retournée

FltGetVolumeProperties retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_BUFFER_OVERFLOW
La mémoire tampon vers laquelle pointe le paramètre VolumeProperties est suffisamment grande pour contenir la partie fixe de la structure FLT_VOLUME_PROPERTIES , mais pas les membres FileSystemDriverName, FileSystemDeviceName ou RealDeviceName . Dans ce cas, seule la partie fixe des informations de volume est retournée dans la mémoire tampon vers laquelle pointe le paramètre VolumeProperties . Le paramètre LengthReturned reçoit la longueur réelle, en octets, des données retournées. Il s’agit d’un code d’avertissement.
STATUS_BUFFER_TOO_SMALL
La mémoire tampon vers laquelle pointe le paramètre VolumeProperties n’est pas assez grande pour contenir les informations de propriété de volume. Le paramètre LengthReturned reçoit la taille de mémoire tampon requise. Dans ce cas, aucune information de volume n’est retournée. Il s’agit d’un code d’erreur.

Remarques

FltGetVolumeProperties retourne uniquement les informations qui peuvent être interrogées en toute sécurité pendant le processus de montage sans risque de blocage du système. Par conséquent, un pilote de minifiltre appelle généralement cette routine à partir d’une fonction de rappel post-montage ou d’une routine InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) pour déterminer s’il faut attacher à un volume donné.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK