共用方式為


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 成員中保留讀取的數據。

Token 代表檔案的連續區域,從 FSCTL_OFFLOAD_READ_INPUT的 FileOffset 成員中要求的位移開始。 產生的複製長度 TransferLength 可能小於原本在 copyLength 成員中指定的 FSCTL_OFFLOAD_READ_INPUT。 較小的值表示 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