Fonction NtFlushBuffersFileEx (ntifs.h)
La routine NtFlushBuffersFileEx envoie 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
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
[in] HANDLE FileHandle,
[in] ULONG Flags,
[in] PVOID Parameters,
[in] ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
Paramètres
[in] FileHandle
Handle retourné par NtCreateFile ou NtOpenFile pour le fichier dont les mémoires tampons seront vidées. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
[in] Flags
Indicateurs d’opération de vidage. Les indicateurs peuvent être l’une des valeurs suivantes :
Valeur | Signification |
---|---|
0 (normal) | Les données et métadonnées du fichier dans le cache de fichiers seront écrites, et le stockage sous-jacent est synchronisé pour vider son cache. Systèmes de fichiers Windows pris en charge : NTFS, ReFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_ONLY | Les données de fichier dans le cache de fichiers seront é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. Systèmes de fichiers Windows pris en charge : NTFS, FAT, exFAT. |
FLUSH_FLAGS_NO_SYNC | Les données de fichier et les métadonnées dans le cache de fichiers seront écrites. Le stockage sous-jacent n’est pas synchronisé pour vider son cache. Cet indicateur n’est pas valide avec les handles de volume. Systèmes de fichiers Windows pris en charge : NTFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY | Les données du fichier donné seront écrites à partir du cache en mémoire Windows. Seules les métadonnées nécessaires à la récupération des données seront vidées (la mise à jour de l’horodatage sera ignorée autant que possible). Le stockage sous-jacent est synchronisé pour vider son cache. Cet indicateur n’est pas valide avec les handles de volume ou de répertoire. Systèmes de fichiers Windows pris en charge : NTFS. |
[in] Parameters
Pointeur vers un bloc avec des paramètres supplémentaires. Ce paramètre doit actuellement être défini sur NULL.
[in] ParametersSize
Taille, en octets, du bloc vers lequel les paramètres pointent. Ce paramètre doit actuellement être défini sur 0.
[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
NtFlushBuffersFileEx 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
Les pilotes de minifiltre doivent appeler FltFlushBuffers2 au lieu d’appeler NtFlushBuffersFileEx.
Un pilote de filtre de système de fichiers hérité peut appeler NtFlushBuffersFileEx 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 appelants de NtFlushBuffersFileEx doivent être en cours d’exécution à IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées.
Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx 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 NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.
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
Utilisation des versions Nt et Zw des routines natives des services système natifs