code de contrôle FSCTL_ENUM_EXTERNAL_BACKING
Le code de contrôle FSCTL_ENUM_EXTERNAL_BACKING commence ou continue une énumération de fichiers sur un volume qui a une source de stockage. Pour chaque exécution réussie de la demande, un identificateur pour le fichier sauvegardé est retourné. Tous les fichiers sauvegardés sont énumérés, quel que soit le fournisseur externe qui les sauvegarde. Les requêtes FSCTL_ENUM_EXTERNAL_BACKING successives sont nécessaires pour énumérer tous les fichiers sauvegardés sur le volume.
Pour effectuer cette opération, appelez FltFsControlFile ou ZwFsControlFile avec les paramètres suivants.
Paramètres
Instance [in] : FltFsControlFile uniquement. Pointeur instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.
FileObject [in] : FltFsControlFile uniquement. Objet pointeur de fichier spécifiant le volume à démonter. Ce paramètre est obligatoire et ne peut pas être NULL.
FileHandle [in] : ZwFsControlFile uniquement. Handle de fichier du volume à démonter. Ce paramètre est obligatoire et ne peut pas être NULL.
FsControlCode [in] : code de contrôle pour l’opération. Utilisez FSCTL_ENUM_EXTERNAL_BACKING pour cette opération.
InputBuffer [in] : Aucun. Défini sur NULL.
InputBufferLength [in] : défini sur 0.
OutputBuffer [out] : pointeur vers la mémoire tampon de sortie, qui doit avoir une taille suffisante pour recevoir une ou plusieurs structures WOF_EXTERNAL_FILE_ID .
OutputBufferLength [out] : taille de la mémoire tampon de sortie pointée par OutputBuffer. OutputBufferLength doit être >= sizeof(WOF_EXTERNAL_FILE_ID).
LengthReturned [out] : spécifie le nombre d’octets écrits dans OutputBuffer en cas de réussite de l’exécution.
Bloc d’état
FltFsControlFile ou ZwFsControlFile retourne STATUS_SUCCESS si l’opération réussit. Sinon, la fonction appropriée peut retourner l’une des valeurs NTSTATUS suivantes.
Code | Signification |
---|---|
STATUS_ACCESS_DENIED | Le demandeur ne dispose pas de privilèges administratifs. |
STATUS_BUFFER_TOO_SMALL | La longueur de la mémoire tampon de sortie pointée par OutputBuffer et spécifiée par OutputBufferLength est trop petite. |
STATUS_NO_MORE_FILES | Plus aucun fichier sur le volume n’a de source de stockage. |
STATUS_INTERNAL_ERROR | Le volume demandé n’est pas accessible. |
STATUS_INVALID_DEVICE_REQUEST | Le service de sauvegarde n’est pas présent ou n’est pas démarré. |
Remarques
La structure WOF_EXTERNAL_FILE_ID retournée dans OutputBuffer contient des identificateurs de fichier uniques pour les fichiers sauvegardés. La structure est définie dans ntifs.h comme suit.
typedef struct _WOF_EXTERNAL_FILE_ID {
FILE_ID_128 FileId;
} WOF_EXTERNAL_FILE_ID, *PWOF_EXTERNAL_FILE_ID;
Une demande FSCTL_ENUM_EXTERNAL_BACKING est émise successivement pour récupérer les identificateurs de chaque fichier sur le volume ayant une source de stockage. Lorsque tous les fichiers sont énumérés, le code STATUS_NO_MORE_FILES status est retourné.
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) |