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 |