Поделиться через


структура FSCTL_OFFLOAD_READ_OUTPUT (ntifs.h)

Структура FSCTL_OFFLOAD_READ_OUTPUT содержит выходные данные для запроса кода элемента управления FSCTL_OFFLOAD_READ .

Синтаксис

typedef struct _FSCTL_OFFLOAD_READ_OUTPUT {
  ULONG     Size;
  ULONG     Flags;
  ULONGLONG TransferLength;
  UCHAR     Token[512];
} FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT;

Члены

Size

Размер этой структуры. Задайте для этого элемента значение sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Flags

Флаги результата. Это значение представляет собой побитовую или комбинацию следующих значений:

Значение Значение
OFFLOAD_READ_FLAG_FILE_TOO_SMALL
0x00000001
Файл для чтения слишком мал для операции разгрузки.
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000002
Диапазон, выходящий за пределы выбранного диапазона, содержит все нули.
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE
0x00000004
Операция разгрузки не может завершиться за пределами выбранного диапазона. Для завершения операции следует использовать неразгруженный метод чтения.

TransferLength

Длина (в байтах) данных, представленных маркером.

Token[512]

Массив байтов, содержащий структуру маркеров STORAGE_OFFLOAD_TOKEN, представляющую данные файла в диапазоне, указанном в FSCTL_OFFLOAD_READ_INPUT. Содержимое маркера должно оставаться неизменимым между операциями разгрузки.

Комментарии

Если операция FSCTL_OFFLOAD_READ выполнена успешно, поставщик копирования устройства хранения данных возвращает в FSCTL_OFFLOAD_READ_OUTPUT уникальное значение маркера, определяющее часть считываемых данных файла.

Поставщик копирования сохраняет данные, прочитанные в течение всего времени в элементе TokenTimeToLive структуры FSCTL_OFFLOAD_READ_INPUT .

Маркер представляет непрерывную область файла, начиная с запрошенного смещения в элементе FileOffsetFSCTL_OFFLOAD_READ_INPUT. Результирующая длина, TransferLength, может быть меньше, чем изначально указана в элементе CopyLengthFSCTL_OFFLOAD_READ_INPUT. Меньшее значение указывает на то, что token смог логически представить меньше данных, чем было запрошено.

Если было передано меньше данных, чем запрошено, операция чтения может быть завершена путем выполнения другого запроса FSCTL_OFFLOAD_READ . Следующий запрос использует обновленный элемент FileOffset в структуре FSCTL_OFFLOAD_READ_INPUT со значением в TransferLength и скорректированной длиной чтения предыдущей длины минус значение в TransferLength. Кроме того, незавершенную операцию чтения можно выполнить с помощью неразгруженного метода чтения, например с помощью подпрограммы ZwReadFile .

Требования

Требование Значение
Минимальная версия клиента Windows 8
Верхняя часть ntifs.h (включая Ntifs.h, Fltkernel.h)

См. также раздел

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN