Partager via


FltFlushBuffers2, fonction (fltkernel.h)

Un pilote minifilter appelle FltFlushBuffers2 pour envoyer une demande de vidage au système de fichiers pour un fichier donné.

Syntaxe

NTSTATUS FLTAPI FltFlushBuffers2(
  PFLT_INSTANCE      Instance,
  PFILE_OBJECT       FileObject,
  ULONG              FlushType,
  PFLT_CALLBACK_DATA CallbackData
);

Paramètres

Instance

[in] Pointeur d’instance opaque pour l’instance de pilote minifilter appelante. Ce paramètre est obligatoire et ne peut pas être NULL.

FileObject

[in] Pointeur d’objet de fichier pour le fichier ou le volume à vider. Ce paramètre est obligatoire et ne peut pas être NULL.

FlushType

[in] Spécifie le type de vidage que le système de fichiers doit effectuer sur le fichier. flushType peut être l’une des options suivantes :

Valeur de l’opération FlushType Description
0 Si FileObject concerne un fichier, les données et métadonnées du fichier dans le cache de fichiers sont écrites et le stockage sous-jacent est synchronisé pour vider son cache. Si fileObject concerne un volume, le système de fichiers entraîne l’écriture des données de fichier et des métadonnées pour tous les fichiers modifiés du volume, et le stockage sous-jacent doit être synchronisé pour vider son cache. Cette opération équivaut à FltFlushBuffers.
FLT_FLUSH_TYPE_FLUSH_AND_PURGE Identique à 0 (FltFlushBuffers), sauf que le cache est également vidé après la fin du vidage.
FLT_FLUSH_TYPE_FILE_DATA_ONLY Si le fichier se trouve sur un système de fichiers NTFS, seules 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 si FileObject concerne un volume.
FLT_FLUSH_TYPE_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 ne sera pas synchronisé pour vider son cache. Cet indicateur n’est pas valide si FileObject concerne un volume.
FLT_FLUSH_TYPE_DATA_SYNC_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. Le stockage sous-jacent est synchronisé pour vider son cache. Cet indicateur n’est pas valide si FileObject concerne un volume ou un répertoire.

CallbackData

[in/optional] Pointeur vers une structure FLT_CALLBACK_DATA facultative utilisée pour propager l’extension IRP de l’appelant. Voir FltPropagateIrpExtension.

Valeur de retour

FltFlushBuffers2 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 monté actuellement. Il s’agit d’un code d’erreur.

Remarques

Un pilote minifilter peut appeler FltFlushBuffers2 émettre une demande de IRP_MJ_FLUSH_BUFFERS au système de fichiers pour un fichier donné. L’opération de vidage est synchrone et est émise à l’instance sous la ou les instances spécifiées Instance.

Si le fichier se trouve sur un système de fichiers NTFS, le minifilter peut contrôler le type de vidage via le paramètre FlushType.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1903
d’en-tête fltkernel.h

Voir aussi

FltFlushBuffers

FltPropagateIrpExtension

IRP_MJ_FLUSH_BUFFERS