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 |