Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Код элемента управления 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) |