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

结果标志。 此值是这些值的按位 OR 组合:

含义
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 成员中保留读取数据的持续时间。

令牌表示文件的连续区域,从 FSCTL_OFFLOAD_READ_INPUTFileOffset 成员中请求的偏移量开始。 复制的结果长度 TransferLength 可能小于最初在 FSCTL_OFFLOAD_READ_INPUT的 CopyLength 成员中指定的长度。 较小的值表示 Token 在逻辑上表示的数据比请求的数据少。

如果传输的数据少于请求的数据,则可以通过执行另一 个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