Partager via


ZwFlushBuffersFileEx, fonction (ntifs.h)

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

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 être NULL.

FLags

Indicateurs d’opération de vidage. 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 de fichier et les métadonnées 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’état d’E/S de l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

ParametersSize

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

[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

ZwFlushBuffersFileEx retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme 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

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

Les appelants de ZwFlushBuffersFileEx doivent s’exécuter à IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées.

Remarque 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 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 **Nt*Xxx*** et **Zw*Xxx*** d’une routine, consultez [Using Nt and Zw Versions of the Native System Services Routines](/windows-hardware/drivers/kernel/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

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

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

ZwCreateFile

ZwOpenFile