QUERY_FILE_LAYOUT_INPUT structure (ntifs.h)
La structure QUERY_FILE_LAYOUT_INPUT sélectionne les entrées de disposition de fichier qui sont retournées à partir d’une demande de FSCTL_QUERY_FILE_LAYOUT .
Syntaxe
typedef struct _QUERY_FILE_LAYOUT_INPUT {
union {
ULONG FilterEntryCount;
ULONG NumberOfPairs;
} DUMMYUNIONNAME;
ULONG Flags;
QUERY_FILE_LAYOUT_FILTER_TYPE FilterType;
ULONG Reserved;
union {
CLUSTER_RANGE ClusterRanges[1];
FILE_REFERENCE_RANGE FileReferenceRanges[1];
STORAGE_RESERVE_ID StorageReserveIds[1];
} Filter;
} QUERY_FILE_LAYOUT_INPUT, *PQUERY_FILE_LAYOUT_INPUT;
Membres
DUMMYUNIONNAME
DUMMYUNIONNAME.FilterEntryCount
Nombre d’entrées de filtre dans le tableau Filtre .
DUMMYUNIONNAME.NumberOfPairs
Nom d’origine du champ lorsqu’il n’y avait qu’un seul type de filtre. L’union consiste simplement à maintenir la compatibilité du code.
Flags
Indique les entrées de disposition de fichier qui sont incluses dans les résultats de la requête. Indicateurs est défini sur une combinaison valide des valeurs suivantes.
Valeur | Signification |
---|---|
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS | Stream les entrées d’extension sont incluses dans les résultats de la requête. Pour utiliser cet indicateur, l’indicateur QUERY_FILE_LAYOUT_INCLUDE_STREAMS doit également être défini. |
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO | Les entrées de nom d’informations de fichier supplémentaires sont incluses dans les résultats de la requête. |
QUERY_FILE_LAYOUT_INCLUDE_NAMES | Les entrées de nom de fichier sont incluses dans les résultats de la requête. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS | Les entrées de flux de fichiers sont incluses dans les résultats de la requête. |
QUERY_FILE_LAYOUT_RESTART | Réinitialisez l’itérateur d’entrée de disposition de fichier au début du volume. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED | Incluez des entrées pour les flux résidents et les attributs non alloués. Pour utiliser cet indicateur, l’indicateur QUERY_FILE_LAYOUT_INCLUDE_STREAMS doit également être défini. |
FilterType
Spécifie une méthode de filtrage pour restreindre les informations de disposition retournées. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE | N’effectuez aucun filtrage et retournez toutes les informations. Lorsque vous utilisez ce type, NumberOfPairs doit être 0. |
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS | Limitez les informations de disposition de filtre aux plages dans Filter.ClusterRanges. |
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID | Limitez les informations de disposition de filtre aux plages dans Filter.FileReferenceRanges. |
Reserved
Réservé pour le système.
Filter
Tableau de structures de filtre utilisées pour sélectionner des informations de disposition spécifiques. Celles-ci contiennent des plages de référence de cluster ou de fichiers. La longueur du tableau est spécifiée par le membre NumberOfPairs . Chaque plage doit être distincte et ne peut pas chevaucher une autre plage.
Ce membre est ignoré si QUERY_FILE_LAYOUT_FILTER_TYPE_NONE est spécifié dans FilterType.
Filter.ClusterRanges[1]
Spécifie un ensemble de plages de cluster pour filtrer les informations de disposition. La structure de plage a le format suivant.
typedef struct _CLUSTER_RANGE {
LARGE_INTEGER StartingCluster;
LARGE_INTEGER ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;
Filter.FileReferenceRanges[1]
Spécifie un ensemble de plages de références de fichiers pour filtrer les informations de disposition. Disponible à partir de Windows 10 version 1809. La structure de plage a le format suivant.
typedef struct _FILE_REFERENCE_RANGE {
LARGE_INTEGER StartingFileReference;
LARGE_INTEGER EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;
Filter.StorageReserveIds[1]
Spécifie un ensemble d’ID de réserve de stockage pour filtrer les informations de disposition. L’énumération associée a le format suivant.
typedef enum _STORAGE_RESERVE_ID {
StorageReserveIdNone = 0,
StorageReserveIdHard,
StorageReserveIdSoft,
StorageReserveIdUpdateScratch,
StorageReserveIdMax
} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;
Remarques
L’indicateur QUERY_FILE_LAYOUT_RESTART est défini lors de la première demande FSCTL_QUERY_FILE_LAYOUT. Si des plages de filtres sont incluses dans la requête, elles sont mises en cache lorsque QUERY_FILE_LAYOUT_RESTART est défini. D’autres demandes retournent des entrées de fichier de disposition jusqu’à la fin du volume ou jusqu’à ce que les plages de filtres soient épuisées.
Si QUERY_FILE_LAYOUT_RESTART est à nouveau défini pour le même volume, la position de disposition du fichier est réinitialisée au début du volume. En outre, les plages de filtres sont re-mises en cache et leur ordre d’évaluation est réinitialisé à la première plage.
Les entrées de disposition de fichier sont retournées dans la mémoire tampon de sortie en suivant une structure QUERY_FILE_LAYOUT_OUTPUT .
Lorsque FilterType est QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS, le membre ClusterRanges de l’union Filter est utilisé pour le filtrage de plage. Sinon, si FilterType est QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID, le membre FileReferenceRanges est utilisé pour le filtrage de plage.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
En-tête | ntifs.h (include Ntifs.h) |