Partager via


CcZeroData, fonction (ntifs.h)

Le CcZeroData routine zéro la plage d’octets spécifiée dans un fichier mis en cache ou non mis en cache.

Note

Cette routine ne doit être appelée qu’à zéro partie d’un fichier au-delà de la longueur de données valide du fichier. CcZeroData ne modifie pas les données écrites précédemment du fichier. Pour zéro donnée écrite précédemment qui fait partie du fichier jusqu’à la longueur de données valide du fichier, appelez CcCopyWriteou l’une des autres interfaces d’écriture mises en cache.

Syntaxe

BOOLEAN CcZeroData(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER StartOffset,
  [in] PLARGE_INTEGER EndOffset,
  [in] BOOLEAN        Wait
);

Paramètres

[in] FileObject

Pointeur vers un FILE_OBJECT pour le fichier dans lequel une plage d’octets doit être zéro.

[in] StartOffset

Pointeur vers une variable qui spécifie le décalage d’octet dans le fichier vers le premier octet à zéro.

[in] EndOffset

Pointeur vers une variable qui spécifie le décalage d’octet dans le fichier vers le dernier octet à zéro.

[in] Wait

Défini sur TRUE si l’appelant doit être placé dans un état d’attente jusqu’à ce que la plage d’octets entière ait été zéro. Dans le cas contraire, ce paramètre est défini sur FALSE.

Valeur de retour

CcZeroData retourne TRUE si les données sont correctement nulles ; sinon, retourne FALSE.

Remarques

Le fichier à zéro peut être mis en cache ou non mis en cache. Toutefois, si le fichier n’est pas mis en cache, les valeurs de StartOffset et EndOffset doivent tous deux être multiples de la taille du secteur du volume.

Si un échec d’allocation de pool se produit et que d’attente a été spécifié comme TRUE, CcZeroData déclenche une exception STATUS_INSUFFICIENT_RESOURCES. Si un échec d’allocation de pool se produit et que d’attente a été spécifié comme FALSE, CcZeroData retourne FALSE, mais ne déclenche pas d’exception.

Si le FileObject fourni n’a pas activé la mise en cache, mais que la mise en cache existe sur le flux (autrement dit, un autre objet de fichier pour le même fichier est activé), la mise à zéro est traitée comme si la mise en cache en écriture est activée.

Si d’attente est défini sur TRUE, CcZeroData est garanti pour terminer la demande de données zéro et retourner TRUE. Si les pages requises du fichier mis en cache résident déjà en mémoire, les données sont immédiatement supprimées et aucun blocage ne se produit. Si les pages nécessaires ne sont pas résidentes, l’appelant est placé dans un état d’attente jusqu’à ce que toutes les pages requises aient été rendues résidentes et que les données puissent être supprimées.

Si 'attente est FALSE et si les pages requises du fichier mis en cache ne résident pas déjà en mémoire, CcZeroData refuse de bloquer et renvoie FAUX.

Si un échec d’allocation de pool se produit, CcZeroData déclenche une exception de STATUS_INSUFFICIENT_RESOURCES. Si CcZeroData rencontre d’autres erreurs, y compris les erreurs d’E/S, les erreurs sont déclenchées à l’appelant.

Pour les systèmes d’exploitation Windows Vista et ultérieurs, le comportement de CcZeroData est le suivant :

  • Si le flux est mis en cache et write_through, startOffset ne doit pas être aligné sur le secteur.
  • Si endOffset n’est pas aligné, elle est arrondie à la taille de secteur suivante.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000. Consultez les remarques sur les modifications apportées aux systèmes d’exploitation Vista et ultérieurs.
plateforme cible Universel
d’en-tête ntifs.h (include Fltkernel.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

Voir aussi

CcInitializeCacheMap

ccIsFileCached

FILE_OBJECT