Partager via


NtFlushBuffersFileEx, fonction (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 être NULL.

[in] Flags

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

Valeur Signification
0 (normal) Les données et métadonnées de fichier dans le cache de fichiers sont é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 sont é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 et métadonnées de fichier dans le cache de fichiers sont é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é sont é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 Paramètres point. Ce paramètre doit actuellement être défini sur 0.

[out] IoStatusBlock

Adresse du bloc d’état d’E/S de l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur de retour

NtFlushBuffersFileEx retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :

Retourner le code 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 actuellement monté ; il s’agit d’un code d’erreur.
STATUS_ACCESS_DENIED Le fichier n’a ni accès en écriture ni ajout.

Remarques

Les pilotes minifilter doivent appeler FltFlushBuffers2 au lieu d’appeler NtFlushBuffersFileEx.

Un pilote de filtre de système de fichiers hérité peut appeler NtFlushBuffersFileEx é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 s’exécuter à 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 de 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 Using Nt and Zw Versions of the Native System Services Routines.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques.)

Voir aussi

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS

à l’aide de versions Nt et Zw des routines natives des services système

NtCreateFile

NtOpenFile