код элемента управления FSCTL_OFFLOAD_READ

Код элемента управления FSCTL_OFFLOAD_READ инициирует разгрузку для блока данных в системе хранения, которая поддерживает примитивы для чтения разгрузки.

Чтобы выполнить эту операцию, вызовите FltFsControlFile или ZwFsControlFile со следующими параметрами.

Параметры

  • Экземпляр [in]: только FltFsControlFile . Непрозрачный указатель экземпляра вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

  • FileObject [in]: только FltFsControlFile . Объект указателя файла, указывающий файл для чтения. Этот параметр является обязательным и не может иметь значение NULL.

  • FileHandle [in]: только ZwFsControlFile . Дескриптор файла для чтения. Этот параметр является обязательным и не может иметь значение NULL.

  • FsControlCode [in]: код элемента управления для операции. Используйте FSCTL_OFFLOAD_READ для этой операции.

  • InputBuffer [in]: указатель на структуру FSCTL_OFFLOAD_READ_INPUT , содержащую размер и смещение блока данных для чтения.

  • InputBufferLength [in]: размер буфера в байтах, на который указывает InputBuffer. Это значение равно sizeof(FSCTL_OFFLOAD_READ_INPUT).

  • OutputBuffer [out]: указатель на структуру FSCTL_OFFLOAD_READ_OUTPUT , которая получает результаты операции чтения разгрузки.

  • OutputBufferLength [out]: размер буфера в байтах, на который указывает параметр OutputBuffer . Это значение должно быть по крайней мере sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Блок состояния

FltFsControlFile или ZwFsControlFile возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае соответствующая функция может вернуть одно из следующих значений NTSTATUS.

Code Meaning
STATUS_INVALID_DEVICE_REQUEST Указанный дескриптор не является допустимым дескриптором файла
STATUS_INVALID_PARAMETER Недопустимый параметр. См. примечания.
STATUS_VOLUME_DISMOUNTED Том файловой системы отключен.
STATUS_NOT_SUPPORTED Операции с чтением разгрузки не поддерживаются в этом томе.
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED Запрошенный тип файла не поддерживается. Операции разгрузки не поддерживаются в этих типах файлов: трансактированные файлы (TxF); Файлы, не являющиеся пользователями; Сжатые файлы; Зашифрованные файлы; Разреженные файлы; Файлы Metatdata NTFS.
STATUS_FILE_DELETED Поток данных для этого файла недопустим.
STATUS_FILE_CLOSED Дескриптор файла закрыт.
STATUS_INVALID_HANDLE Указанный дескриптор файла недопустим.
STATUS_FILE_LOCK_CONFLICT Недостаточно доступа на чтение из-за текущего состояния блокировки файлов.
STATUS_END_OF_FILE Элемент FileOffsetFSCTL_OFFLOAD_READ_INPUT начинается после завершения файла (EOF).
STATUS_DISMOUNTED_VOLUME Не удается выполнить чтение разгрузки на отключенном томе.
STATUS_INSUFFICIENT_RESOURCES Недостаточно ресурсов для завершения запроса.
STATUS_BUFFER_TOO_SMALL OutputBufferLength слишком мал, чтобы OutputBuffer получил FSCTL_OFFLOAD_READ_OUTPUT структуру .

Замечания

Отключение чтения доступно только для обычных файлов. См. описание STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED списка неподдерживаемых типов файлов.

Чтение может начинаться с допустимой длины данных (VDL), но не за пределами EOF.

При возврате STATUS_INVALID_PARAMETER ошибка может быть одним из следующих недопустимых параметров:

  • Размер файла меньше PAGE_SIZE.
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT).
  • Одно или несколько этих членов FSCTL_OFFLOAD_READ_INPUT неверны:
    • FileOffset не является нескольким размером логического сектора тома.
    • CopyLength не является нескольким размером логического сектора тома.
    • Размер не является размером структуры FSCTL_OFFLOAD_READ_INPUT .
    • FileOffset + CopyLength>MAXULONGLONG.

Требования

Тип требования Требование
Минимальная версия клиента Windows 8
Header Ntifs.h (включая Ntifs.h или Fltkernel.h)

См. также

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT