Код элемента управления FSCTL_SET_ZERO_DATA
Код элемента управления FSCTL_SET_ZERO_DATA заполняет указанный диапазон файла нулями (0). Если файл разрежен или сжатый, файловая система NTFS может освободить место на диске в файле. При этом диапазон байтов задается равным нулю (0), не расширяя размер файла.
Чтобы выполнить эту операцию из драйвера, вызовите FltFsControlFile со следующими параметрами.
Параметры
Экземпляр: указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
FileObject [in]: указатель на файл, в который записываются нули. Этот параметр является обязательным и не может иметь значение NULL.
FsControlCode [in]: код элемента управления для операции.
Используйте FSCTL_SET_ZERO_DATA для этой операции.
- InputBuffer [in]: указатель на FILE_ZERO_DATA_INFORMATION или FILE_ZERO_DATA_INFORMATION_EX структуру, задающую диапазон нулей для файла.
Элемент FileOffset — это смещение в байтах первого байта, задается равным нулю (0), а член BeyondFinalZero — это смещение первого байта после последнего нуля (0) байта.
Элемент Flags в FILE_ZERO_DATA_INFORMATION_EX задает модификаторы для операции. Например, если для флагов задано значение FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA, содержимое кэша, соответствующее этому диапазону файла, не очищается.
InputBufferLength [in]: размер входного буфера в байтах.
OutputBuffer [out]: не используется с этой операцией; для параметра задано значение NULL.
OutputBufferLength [out]: не используется с этой операцией; Значение равно нулю.
Блок состояния
FltFsControlFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS.
Код возврата | Значение |
---|---|
_INSUFFICIENT_RESOURCES СОСТОЯНИЯ | Недостаточно памяти для выполнения запроса. |
STATUS_INVALID_PARAMETER | InputBufferLength меньше размера структур FILE_ZERO_DATA_INFORMATION или указанный файл является файлом системных метаданных или каталогом. |
STATUS_ACCESS_DENIED | FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA настраивается из пользовательского режима. |
STATUS_MEDIA_WRITE_PROTECTED | В настоящее время том защищен для записи. |
Требования
Тип требования | Требование |
---|---|
Заголовок | Ntifs.h (включая Ntifs.h) |