Partager via


code de contrôle FSCTL_SET_ZERO_DATA

Le code de contrôle FSCTL_SET_ZERO_DATA remplit une plage spécifiée d’un fichier avec des zéros (0). Si le fichier est partiellement alloué ou compressé, le système de fichiers NTFS peut libérer de l’espace disque dans le fichier. Cela définit la plage d’octets sur zéros (0) sans étendre la taille du fichier.

Pour effectuer cette opération à partir d’un pilote, appelez FltFsControlFile avec les paramètres suivants.

Paramètres

  • Instance : pointeur de instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

  • FileObject [in] : pointeur d’objet File vers le fichier dans lequel écrire des zéros. Ce paramètre est obligatoire et ne peut pas être NULL.

  • FsControlCode [in] : code de contrôle pour l’opération.

Utilisez FSCTL_SET_ZERO_DATA pour cette opération.

Le membre FileOffset est le décalage d’octets du premier octet à définir sur zéros (0), et le membre BeyondFinalZero est le décalage d’octets du premier octet au-delà du dernier zéro (0) octet.

Le membre Flags dans FILE_ZERO_DATA_INFORMATION_EX spécifie les modificateurs de l’opération. Par exemple, lorsque Indicateurs est défini sur FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA, le contenu du cache correspondant à cette plage du fichier n’est pas vidé.

  • InputBufferLength [in] : taille de la mémoire tampon d’entrée, en octets.

  • OutputBuffer [out] : non utilisé avec cette opération ; défini sur NULL.

  • OutputBufferLength [out] : non utilisé avec cette opération ; défini sur zéro.

Bloc d’état

FltFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée.

Code de retour Signification
STATUS _INSUFFICIENT_RESOURCES La mémoire disponible est insuffisante pour terminer cette opération.
STATUS_INVALID_PARAMETER InputBufferLength est plus petit que la taille des structures FILE_ZERO_DATA_INFORMATION ou le fichier spécifié est un fichier de métadonnées système ou un répertoire.
STATUS_ACCESS_DENIED Le FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA est défini à partir du mode utilisateur.
STATUS_MEDIA_WRITE_PROTECTED Le volume est actuellement protégé en écriture.

Configuration requise

Type d’exigence Condition requise
En-tête Ntifs.h (inclure Ntifs.h)

Voir aussi

FltFsControlFile

FILE_ZERO_DATA_INFORMATION

FILE_ZERO_DATA_INFORMATION_EX