Partager via


Fonction NtFlushBuffersFileEx (ntifs.h)

La routine NtFlushBuffersFileEx envoie une demande de vidage pour un fichier donné au système de fichiers. Un indicateur d’opération de vidage facultatif peut être défini pour contrôler la façon dont les données de fichier sont écrites dans le stockage.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
  [in]  ULONG            Flags,
  [in]  PVOID            Parameters,
  [in]  ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Paramètres

[in] FileHandle

Handle retourné par NtCreateFile ou NtOpenFile pour le fichier dont les mémoires tampons seront vidées. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] Flags

Indicateurs d’opération de vidage. Les indicateurs peuvent être l’une des valeurs suivantes :

Valeur Signification
0 (normal) Les données et métadonnées du fichier dans le cache de fichiers seront écrites, et le stockage sous-jacent est synchronisé pour vider son cache. Systèmes de fichiers Windows pris en charge : NTFS, ReFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_ONLY Les données de fichier dans le cache de fichiers seront écrites. Aucune métadonnées n’est écrite et le stockage sous-jacent n’est pas synchronisé pour vider son cache. Cet indicateur n’est pas valide avec les handles de volume. Systèmes de fichiers Windows pris en charge : NTFS, FAT, exFAT.
FLUSH_FLAGS_NO_SYNC Les données de fichier et les métadonnées dans le cache de fichiers seront écrites. Le stockage sous-jacent n’est pas synchronisé pour vider son cache. Cet indicateur n’est pas valide avec les handles de volume. Systèmes de fichiers Windows pris en charge : NTFS, FAT, exFAT.
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY Les données du fichier donné seront écrites à partir du cache en mémoire Windows. Seules les métadonnées nécessaires à la récupération des données seront vidées (la mise à jour de l’horodatage sera ignorée autant que possible). Le stockage sous-jacent est synchronisé pour vider son cache. Cet indicateur n’est pas valide avec les handles de volume ou de répertoire. Systèmes de fichiers Windows pris en charge : NTFS.

[in] Parameters

Pointeur vers un bloc avec des paramètres supplémentaires. Ce paramètre doit actuellement être défini sur NULL.

[in] ParametersSize

Taille, en octets, du bloc vers lequel les paramètres pointent. Ce paramètre doit actuellement être défini sur 0.

[out] IoStatusBlock

Adresse du bloc d’E/S de l’appelant status. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

Valeur retournée

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

Code de retour Description
STATUS_MEDIA_WRITE_PROTECTED Le fichier réside sur un volume protégé en écriture ; il s’agit d’un code d’erreur.
STATUS_VOLUME_DISMOUNTED Le fichier réside sur un volume qui n’est pas monté actuellement ; il s’agit d’un code d’erreur.
STATUS_ACCESS_DENIED Le fichier n’a ni accès en écriture ni en ajout.

Remarques

Les pilotes de minifiltre doivent appeler FltFlushBuffers2 au lieu d’appeler NtFlushBuffersFileEx.

Un pilote de filtre de système de fichiers hérité peut appeler NtFlushBuffersFileEx pour émettre une demande de IRP_MJ_FLUSH_BUFFERS au système de fichiers pour un fichier donné. L’opération de vidage est synchrone.

Les appelants de NtFlushBuffersFileEx doivent être en cours d’exécution à IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées.

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Plateforme cible Universal
En-tête ntifs.h (inclure Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques).)

Voir aussi

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS

Utilisation des versions Nt et Zw des routines natives des services système natifs

NtCreateFile

NtOpenFile