共用方式為


FSCTL_OFFLOAD_READ控件程式代碼

FSCTL_OFFLOAD_READ控制程式代碼會針對支援卸除讀取基本類型之記憶體系統中的數據區塊起始卸除讀取。

若要執行這項作業,請使用下列參數呼叫 FltFsControlFileZwFsControlFile

參數

  • 實例 [in]: 僅限 FltFsControlFile 。 呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。

  • FileObject [in]: 僅限 FltFsControlFile 。 指定要從中讀取之檔案的檔案指針對象。 這個參數是必要的,而且不能是 NULL。

  • FileHandle [in]: 僅限 ZwFsControlFile 。 要讀取之檔案的檔案句柄。 這個參數是必要的,而且不能是 NULL。

  • FsControlCode [in]:作業的控制程序代碼。 針對此作業使用 FSCTL_OFFLOAD_READ

  • InputBuffer [in]: FSCTL_OFFLOAD_READ_INPUT 結構的指標,其中包含要讀取的數據區塊大小和位移。

  • InputBufferLength [in]: InputBuffer 所指向緩衝區的大小,以位元組為單位。 這個值為 sizeof (FSCTL_OFFLOAD_READ_INPUT) 。

  • OutputBuffer [out]: FSCTL_OFFLOAD_READ_OUTPUT 結構的指標,可接收卸除讀取作業的結果。

  • OutputBufferLength [out]: OutputBuffer 參數所指向緩衝區的大小,以位元組為單位。 此值必須至少 為大小 (FSCTL_OFFLOAD_READ_OUTPUT)

狀態區塊

FltFsControlFileZwFsControlFile 會在作業成功時傳回STATUS_SUCCESS。 否則,適當的函式可能會傳回下列其中一個NTSTATUS值。

程式碼 意義
STATUS_INVALID_DEVICE_REQUEST 指定的句柄不是有效的檔案句柄
STATUS_INVALID_PARAMETER 有一個參數無效。 請參閱<備註>。
STATUS_VOLUME_DISMOUNTED 檔系統磁碟區已卸除。
STATUS_NOT_SUPPORTED 此磁碟區不支援卸除讀取作業。
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 不支援要求的文件類型。 這些文件類型不支援卸除作業:交易的檔案 (TxF) ;非用戶檔案;壓縮檔案;加密的檔案;疏鬆檔案;NTFS Metatdata 檔案。
STATUS_FILE_DELETED 此檔案的數據流無效。
STATUS_FILE_CLOSED 檔案句柄已關閉。
STATUS_INVALID_HANDLE 指定的檔案句柄無效。
STATUS_FILE_LOCK_CONFLICT 由於目前的檔案鎖定狀態,讀取許可權不足。
STATUS_END_OF_FILE FSCTL_OFFLOAD_READ_INPUTFileOffset 成員會在文件尾 (EOF) 之後開始。
STATUS_DISMOUNTED_VOLUME 卸除讀取無法在卸除的磁碟區上發生。
STATUS_INSUFFICIENT_RESOUCES 資源不足,無法完成要求。
STATUS_BUFFER_TOO_SMALL OutputBufferLength 太小,因此 OutputBuffer 無法接收 FSCTL_OFFLOAD_READ_OUTPUT 結構。

備註

卸除讀取僅適用於一般檔案。 如需不支援的文件類型清單,請參閱 STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 的描述。

讀取可能會從有效數據長度 (VDL) 開始,但不能超過 EOF。

傳回STATUS_INVALID_PARAMETER時,錯誤可能是下列其中一個無效的參數:

  • 檔案大小小於 PAGE_SIZE。
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT)
  • 其中一或多個 FSCTL_OFFLOAD_READ_INPUT 成員不正確:
    • FileOffset 不是磁碟區邏輯扇區大小的倍數。
    • CopyLength 不是磁碟區邏輯扇區大小的倍數。
    • size 不是 FSCTL_OFFLOAD_READ_INPUT 結構的大小。
    • FileOffset + CopyLength>MAXULONGLONG

規格需求

需求類型 需求
最低支援的用戶端 Windows 8
標頭 Ntifs.h (包含 Ntifs.hFltkernel.h)

另請參閱

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT