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表示的数据长度(以字节为单位)。

Token[512]

一个字节数组,其中包含一个标记结构,STORAGE_OFFLOAD_TOKEN,表示在 FSCTL_OFFLOAD_READ_INPUT中指定的范围内的文件数据。 令牌 的内容在卸载作之间必须保持未修改。

言论

如果 FSCTL_OFFLOAD_READ作成功,则存储设备的复制提供程序在 FSCTL_OFFLOAD_READ_OUTPUT中返回用于标识文件数据读取部分的唯一令牌值。

复制提供程序在 FSCTL_OFFLOAD_READ_INPUT 结构的 TokenTimeToLive 成员中保留读取的数据。

令牌 表示文件的连续区域,以 FileOffset 成员 FSCTL_OFFLOAD_READ_INPUT中请求的偏移量开头。 生成的复制长度(TransferLength)可能小于最初在 FSCTL_OFFLOAD_READ_INPUTCopyLength 成员中指定的长度。 较小的值指示 令牌 能够以逻辑方式表示的数据少于请求的数据。

如果传输的数据少于所请求的数据,则可以通过执行另一个 FSCTL_OFFLOAD_READ 请求来完成读取作。 下一个请求使用 FSCTL_OFFLOAD_READ_INPUT 结构中更新 FileOffset 成员,TransferLength 中的值,并调整后的读取长度减去 TransferLength中的值。 此外,可以使用 ZwReadFile 例程,通过非卸载的读取方法完成不完整的读取作。

要求

要求 价值
最低支持的客户端 Windows 8。
标头 ntifs.h(包括 Ntifs.h、Fltkernel.h)

另请参阅

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN