Fonction FltFlushBuffers2 (fltkernel.h)
Un pilote de minifiltre 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 de instance opaque pour le instance du pilote minifiltre appelant. 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’un des éléments suivants :
Valeur de l’opération FlushType | Description |
---|---|
0 | Si FileObject est destiné à un fichier, les données et les métadonnées du fichier dans le cache de fichiers seront écrites, et le stockage sous-jacent sera synchronisé pour vider son cache. Si FileObject concerne un volume, le système de fichiers entraîne l’écriture des données et métadonnées de tous les fichiers modifiés sur le volume, et la synchronisation du stockage sous-jacent 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é une fois le vidage terminé. |
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 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 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 la structure facultative FLT_CALLBACK_DATA utilisée pour propager l’extension IRP de l’appelant. Consultez FltPropagateIrpExtension.
Valeur retournée
FltFlushBuffers2 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. |
Remarques
Un pilote de minifiltre peut appeler FltFlushBuffers2 pour émettre une requête IRP_MJ_FLUSH_BUFFERS au système de fichiers pour un fichier donné. L’opération de vidage est synchrone et est émise aux instance sous l’instance spécifiée.
Si le fichier se trouve sur un système de fichiers NTFS, le minifiltre peut contrôler le type de vidage via le paramètre FlushType .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 version 1903 |
En-tête | fltkernel.h |