共用方式為


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中所指定範圍內的檔案資料。 卸除作業之間必須保持未修改 Token 的內容。

言論

如果 FSCTL_OFFLOAD_READ 作業成功,記憶體裝置的複製提供者會在 FSCTL_OFFLOAD_READ_OUTPUT中傳回唯一的令牌值,識別檔案數據讀取的部分。

複製提供者會在 FSCTL_OFFLOAD_READ_INPUT 結構的 TokenTimeToLive 成員中保留讀取的數據。

Token 代表檔案的連續區域,從 FileOffset 中要求的位移開始,FSCTL_OFFLOAD_READ_INPUT的成員。 產生的複製長度 TransferLength,可能小於原本在 CopyLength 成員中指定 FSCTL_OFFLOAD_READ_INPUT的成員。 較小的值表示 Token 能夠以邏輯方式表示比要求的數據少。

如果傳輸的數據少於要求,則讀取作業可能會藉由執行另一個 FSCTL_OFFLOAD_READ 要求來完成。 下一個要求會使用 FSCTL_OFFLOAD_READ_INPUT 結構中 FileOffset 成員,TransferLength 中的值,以及先前長度的調整讀取長度減去 transferLength 中的值。 此外,您也可以使用 ZwReadFile 例程,透過非卸除的讀取方法來完成不完整的讀取作業。

要求

要求 價值
最低支援的用戶端 Windows 8。
標頭 ntifs.h (include Ntifs.h, Fltkernel.h)

另請參閱

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN