共用方式為


PRJ_GET_FILE_DATA_CB回呼函式 (projectedfslib.h)

要求檔案主要數據流的內容。

語法

PRJ_GET_FILE_DATA_CB PrjGetFileDataCb;

HRESULT PrjGetFileDataCb(
  [in] const PRJ_CALLBACK_DATA *callbackData,
  [in] UINT64 byteOffset,
  [in] UINT32 length
)
{...}

參數

[in] callbackData

作業的相關信息。 實作此回呼需要下列 callbackData 成員:

FilePathName 識別提供者備份存放區中應傳回數據之檔案的路徑。 請注意,這會反映檔案第一次建立佔位元元時所擁有的名稱。 如果自之後重新命名, FilePathName 會識別原始 (預先重新命名) 名稱,而不是目前 (重新命名后) 名稱。
DataStreamId要與此檔案數據流建立關聯的唯一值。 提供者必須在 PrjWriteFileDatadataStreamId 參數中傳遞此值,才能在處理此回呼時提供檔案數據。
VersionInfo 提供提供者為此檔案建立佔位元元時所提供的 PRJ_PLACEHOLDER_VERSION_INFO 資訊。 這可協助提供者判斷要傳回的檔案內容版本。 如果檔案已重新命名,且提供者會追蹤重新命名,這也有助於提供者判斷要求哪些檔案的內容。

提供者只能在回呼執行時存取此緩衝區。 如果它想要寫入作業,而且需要來自這個緩衝區的數據,它就必須製作自己的複本。

[in] byteOffset

要求數據的位移,以位元組為單位,從檔案的開頭。 提供者必須從這個位移開始或之前傳回檔案數據

[in] length

要求的檔案數據位元組數目。 提供者必須至少傳回這個以 byteOffset 開頭的檔案數據位元組。

傳回值

傳回碼 描述
S_OK
提供者已成功傳回所有要求的數據。
HRESULT_FROM_WIN32 (ERROR_IO_PENDING)
提供者希望稍後完成作業。
 

如果提供者失敗,則為適當的 HRESULT 錯誤碼。

備註

當 ProjFS 收到數據時,它會將其寫入檔案,以將它轉換成凍結的佔位符。

為了處理此回呼,提供者會發出對 PrjWriteFileData 的一或多個呼叫,為 ProjFS 提供檔案主要數據流的要求內容。 然後提供者會完成回呼。

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server [僅限傳統型應用程式]
目標平台 Windows
標頭 projectedfslib.h