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
结果标志。 此值是这些值的按位 或 组合:
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) |