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.
- InputBuffer [in] : pointeur vers une structure FILE_ZERO_DATA_INFORMATION ou FILE_ZERO_DATA_INFORMATION_EX qui spécifie la plage du fichier à définir sur zéros.
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) |