code de contrôle FSCTL_QUERY_FILE_LAYOUT

Le code de contrôle FSCTL_QUERY_FILE_LAYOUT récupère les informations de disposition de fichier pour un volume de système de fichiers. Les résultats de cette demande sont une collection d’entrées d’informations de disposition de fichier. Le type d’entrées retournées est contrôlé en définissant des indicateurs d’inclusion dans la structure QUERY_FILE_LAYOUT_INPUT . Vous pouvez éventuellement filtrer les résultats en fournissant un ensemble d’étendues de fichier pour restreindre la sélection des informations de disposition.

Pour effectuer cette opération, appelez FltFsControlFile ou ZwFsControlFile avec les paramètres suivants.

Paramètres

  • FileObject [in] : FltFsControlFile uniquement. Pointeur d’objet de fichier pour le volume du système de fichiers. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FileHandle [in] : ZwFsControlFile uniquement. Handle de fichier pour le volume du système de fichiers. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FsControlCode [in] : code de contrôle de l’opération. Utilisez le code de contrôle FSCTL_QUERY_FILE_LAYOUT pour cette opération.

  • InputBuffer [in] : pointeur vers une structure de QUERY_FILE_LAYOUT_INPUT allouée par l’appelant . Cette structure contient les options de sélection. Les extensions de fichier facultatives sont incluses après QUERY_FILE_LAYOUT_INPUT.

  • InputBufferLength [in] : taille, en octets, de la mémoire tampon pointée vers le paramètre InputBuffer . La taille d’InputBuffer doit être au moins sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)), quand NumberOfPairs> 0. Sinon, définissez InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT).

  • OutputBuffer [out] : pointeur vers une structure de QUERY_FILE_LAYOUT_OUTPUT allouée par l’appelant. Il s’agit de l’en-tête des entrées de disposition de fichier qui suivent dans cette mémoire tampon.

  • OutputBufferLength [out] : taille, en octets, de la mémoire tampon pointée vers le paramètre OutputBuffer . La taille de OutputBuffer doit être suffisamment grande pour contenir un QUERY_FILE_LAYOUT_OUTPUT ainsi que les structures de disposition de fichier et de disposition de flux retournées.

Bloc d’état

FltFsControlFile ou ZwFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une de ces valeurs :

Code Signification
STATUS_INVALID_PARAMETER Le volume du système de fichiers n’est pas un volume utilisateur ouvert, une valeur de longueur de mémoire tampon est incorrecte ou une option de requête non valide est définie.
STATUS_ACCESS_DENIED L’appelant ne peut pas accéder au volume du système de fichiers.
STATUS_INVALID_USER_BUFFER Le pointeur pour InputBuffer ou OutputBuffer n’est pas correctement aligné.
STATUS_BUFFER_TOO_SMALL La valeur dans OutputBufferLength indique que OutputBuffer est trop petit pour contenir au moins une entrée de disposition.
STATUS_END_OF_FILE Le pointeur pour InputBuffer ou OutputBuffer n’est pas correctement aligné.

Remarques

Pour récupérer toutes les entrées de disposition d’un volume, la demande de FSCTL_QUERY_FILE_LAYOUT est émise plusieurs fois jusqu’à ce que STATUS_END_OF_FILE soit retourné. Tant que STATUS_SUCCESS est retourné, un appelant peut continuer à envoyer une demande de FSCTL_QUERY_FILE_LAYOUT pour les entrées de disposition restantes.

L’énumération des entrées de disposition peut être redémarrée à tout moment en incluant l’indicateur QUERY_FILE_LAYOUT_RESTART dans le membre Indicateurs de QUERY_FILE_LAYOUT_INPUT. En outre, une fois que FSCTL_QUERY_FILE_LAYOUT a retourné STATUS_END_OF_FILE, il est nécessaire d’inclure l’indicateur QUERY_FILE_LAYOUT_RESTART dans la demande de FSCTL_QUERY_FILE_LAYOUT suivante pour commencer une autre énumération d’entrée de disposition.

Ce code n’est pas pris en charge par ReFS.

Configuration requise

Type d’exigence Condition requise
Client minimal pris en charge Mise à jour Windows 8.1
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)

Voir aussi

QUERY_FILE_LAYOUT_INPUT

QUERY_FILE_LAYOUT_OUTPUT

FltFsControlFile

ZwFsControlFile