Fonction ZwFlushBuffersFileEx (ntifs.h)

La routine ZwFlushBuffersFileEx est appelée par un pilote de filtre de système de fichiers pour envoyer une demande de vidage d’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

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

Paramètres

[in] FileHandle

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

FLags

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

Valeur Signification
FLUSH_FLAGS_FILE_DATA_ONLY

Si le fichier se trouve sur un système de fichiers NTFS, 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.

FLUSH_FLAGS_NO_SYNC

Si le fichier se trouve sur un système de fichiers NTFS, les données et métadonnées du 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.

 

Parameters

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

ParametersSize

Taille, en octets, du bloc de paramètres.

[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

ZwFlushBuffersFileEx 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

Un pilote de filtre de système de fichiers peut appeler ZwFlushBuffersFileEx 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 pilotes de minifiltre doivent appeler FltFlushBuffers au lieu d’appeler ZwFlushBuffersFileEx.

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

Note Si l’appel à la fonction ZwFlushBuffersFileEx se produit en mode utilisateur, vous devez utiliser le nom « NtFlushBuffersFileEx » au lieu de « ZwFlushBuffersFileEx ».
 
Pour les appels à partir de pilotes en mode noyau, les versions **Nt*Xxx*** et **Zw*Xxx*** 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 **Nt*Xxx*** et **Zw*Xxx*** d’une routine, consultez [Utilisation des versions Nt et Zw des routines natives des services système natifs](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines).

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

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

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

ZwCreateFile

ZwOpenFile