CF_CALLBACK_TYPE列舉 (cfapi.h)

包含佔位元檔案或資料夾上使用的各種回呼類型。

Syntax

typedef enum CF_CALLBACK_TYPE {
  CF_CALLBACK_TYPE_FETCH_DATA,
  CF_CALLBACK_TYPE_VALIDATE_DATA,
  CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
  CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DELETE,
  CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_RENAME,
  CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
  CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;

常數

 
CF_CALLBACK_TYPE_FETCH_DATA
此回呼是用來要求同步提供者取得滿足佔位元上 I/O 要求或明確凍結要求所需的檔案數據範圍。 如果同步提供者指定同步根註冊時 ALWAYS_FULL 的凍結原則,則需要實作此回呼。
CF_CALLBACK_TYPE_VALIDATE_DATA
此回呼可用來要求同步提供者確認指定的檔案數據範圍已存在於先前 CF_OPERATION_TYPE_TRANSFER_DATA 作業的磁碟上,因此可供平臺用來滿足使用者 I/O 要求。 只有在同步提供者在同步根註冊時間指定凍結原則修飾詞 VALIDATION_REQUIRED 時,才需要實作此回呼。
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA
此回呼是用來通知同步提供者不再需要一系列檔案數據,通常是因為原始要求已取消。 這可讓同步提供者停止花費嘗試取得數據 (取消未完成的網路要求等 ) 。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS
此回呼可用來要求同步提供者提供佔位元目錄內容的相關信息,以滿足目錄查詢作業,或嘗試在目錄底下開啟檔案。 只有在同步提供者指定同步根註冊時 CF_POPULATION_POLICY_ALWAYS_FULL 以外的原則時,才需要實作此回呼。
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS
這個回呼是用來通知同步提供者,佔位元元目錄的內容已不再需要,通常是因為原始要求已取消。 這可讓同步提供者停止花費其嘗試取得內容 (取消未完成的網路要求等 ) 。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION
此回呼是用來通知同步提供者,其中一個同步根目錄下的佔位元已成功開啟以供讀取/寫入/刪除存取。 不會封鎖執行開啟的用戶應用程式。 同步提供者不會有任何回應。 此通知不適用於目錄。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION
此回呼可用來通知同步提供者,其其中一個同步根目錄下的佔位元,先前已開啟以供讀取/寫入/刪除存取權關閉。 不會封鎖執行關閉的用戶應用程式。 同步提供者不會有任何回應。 此通知不適用於目錄。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元即將解除凍結。 執行解除凍結的使用者應用程式會遭到封鎖。 同步提供者預期會有回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元已成功解除凍結。 不會封鎖執行解除凍結的用戶應用程式。 同步提供者不會有任何回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_DELETE
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元即將遭到刪除。 執行刪除的使用者應用程式會遭到封鎖。 同步提供者預期會有回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元已成功刪除。 不會封鎖執行刪除的用戶應用程式。 同步提供者不會有任何回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_RENAME
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元即將重新命名或移動。 執行重新命名/移動的使用者應用程式會遭到封鎖。 同步提供者預期會有回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION
此回呼可用來通知同步提供者,其中一個同步根目錄下的佔位元已成功重新命名或移動。 不會封鎖執行重新命名/移動的用戶應用程式。 同步提供者不會有任何回應。 此回呼的實作是選擇性的。
CF_CALLBACK_TYPE_NONE
值: 0xffffffff
沒有回呼類型。

備註

這些不是連結庫提供的 API,而是同步提供者必須實作的回呼,才能從平臺服務要求。 視需要,平臺會要求同步提供者進程內執行的連結庫實例叫用適當的回呼例程。

回呼例程會在線程集區的一部分 (任意線程中叫用) 。 在不同的線程中,可以同時發生多個回呼,而且同步提供者程式代碼負責實作任何必要的同步處理,以便可靠地執行此工作。 所有回呼都是異步的。 觸發回呼的異步使用者要求會寫入,並將控件傳回給用戶應用程式。

每個回呼要求都有固定的 60 秒逾時。 來自同步提供者之任何擱置要求的有效作業會重設所有擱置要求的定時器。

所有回呼函式都有兩個自變數相同的原型: 一個CF_CALLBACK_INFO 結構和 一個CF_CALLBACK_PARAMETERS 結構。

回呼例程沒有傳回值。

規格需求

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

另請參閱

CF_CALLBACK_INFO

CF_CALLBACK_PARAMETERS