共用方式為


FSCTL_OFFLOAD_WRITE控制代碼

FSCTL_OFFLOAD_WRITE控制程式碼會起始支援卸載寫入基本元素之儲存體系統中資料區塊的卸載寫入。

若要執行此作業,迷你篩選驅動程式會使用下列參數呼叫 FltFsControlFile ,而檔案系統、重新導向器和舊版檔案系統篩選驅動程式會使用下列參數呼叫 ZwFsControlFile

參數

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

  • FileObject [in]:僅限 FltFsControlFile 。 指定要寫入的檔案的檔案指標物件。 此參數是必要參數,且不能為 Null。

  • FileHandle [in]:僅限 ZwFsControlFile 。 要寫入的檔案的檔案句柄。 此參數是必要參數,且不能為 Null。

  • FsControlCode [in]:作業的控制碼。 請使用 FSCTL_OFFLOAD_WRITE 進行此作業。

  • InputBuffer [in]: 指向FSCTL_OFFLOAD_WRITE_INPUT 結構的指標,其中包含要讀取的資料區塊的大小和位移。

  • InputBufferLength [in]: InputBuffer 所指向的緩衝區大小 (以位元組為單位)。 此值是 sizeof(FSCTL_OFFLOAD_WRITE_INPUT)。

  • OutputBuffer [out]:指向 FSCTL_OFFLOAD_WRITE_INPUT 結構的指標,其中包含要讀取的資料區塊的大小和偏移量。

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

狀態區塊

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

Code Meaning
STATUS_INVALID_DEVICE_REQUEST 指定的控制碼不是有效的檔案控制碼。
STATUS_INVALID_PARAMETER 參數無效。 請參閱備註。
STATUS_NOT_SUPPORTED 此磁碟區不支援卸載讀取作業。
STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED 不支援要求的檔案類型。 下列檔案類型不支援卸載作業:交易檔案 (TxF);非使用者檔案;壓縮文件;加密檔案;稀疏檔案;NTFS 中繼資料檔案。
STATUS_TOO_LATE 在卸載磁區之後,已嘗試對磁區進行寫入作業。
STATUS_FILE_DELETED 此檔案的資料串流無效。
STATUS_FILE_CLOSED 檔案控點已關閉。
STATUS_INVALID_HANDLE 指定的檔案控制碼無效。
STATUS_FILE_LOCK_CONFLICT 由於目前的檔案鎖定狀態,無法授與讀取或寫入存取權。
STATUS_END_OF_FILE FSCTL_OFFLOAD_WRITE_INPUTFileOffset 成員會在檔案結尾 (EOF) 之後開始。
STATUS_DISMOUNTED_VOLUME 卸載寫入無法在已卸載的磁區上發生。
STATUS_MEDIA_WRITE_PROTECTED 磁碟區是唯讀的。
STATUS_INSUFFICIENT_RESOURCES 沒有足夠的資源來完成請求。
STATUS_BUFFER_TOO_SMALL InputBufferLength 太小, InputBuffer 無法包含FSCTL_OFFLOAD_WRITE_INPUT 結構,或 OutputBufferLength小,無法 接收 FSCTL_OFFLOAD_WRITE_OUTPUT 結構。

備註

卸載讀取僅適用於一般檔案。 請參閱 STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED 說明,以取得不支援的檔案類型清單。

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

  • 檔案大小小於 PAGE_SIZE。
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_OUTPUT)
  • FSCTL_OFFLOAD_WRITE_INPUT的下列一或多個成員不正確:

    FileOffset 不是磁碟區邏輯磁區大小的倍數。 CopyLength 不是磁區邏輯磁區大小的倍數。 TransferOffset 不是磁碟區邏輯磁區大小的倍數。 尺寸 不是FSCTL_OFFLOAD_WRITE_INPUT 結構的大小。 檔案位移> 檔案的有效資料長度 (VDL)。 檔案位移 + 複製長度>MAXULONGLONG。

需求

需求類型 Requirement
最低支援的用戶端 視窗8
Header Ntifs.h (包括 Ntifs.hFltkernel.h

另請參閱

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_WRITE_INPUT

FSCTL_OFFLOAD_WRITE_OUTPUT