cfConnectSyncRoot 函式 (cfapi.h)
起始同步提供者與同步篩選 API 之間的雙向通訊。
語法
HRESULT CfConnectSyncRoot(
[in] LPCWSTR SyncRootPath,
[in] const CF_CALLBACK_REGISTRATION *CallbackTable,
[in, optional] LPCVOID CallbackContext,
[in] CF_CONNECT_FLAGS ConnectFlags,
[out] CF_CONNECTION_KEY *ConnectionKey
);
參數
[in] SyncRootPath
同步根目錄的路徑。
[in] CallbackTable
要註冊的回呼數據表。 此參數是同步提供者告訴連結庫從平臺呼叫各種要求類型的函式的方式。 它是結構陣列,其中包含回呼類型和相關聯的函式指標。 同步提供者只需要註冊其實作的回呼。 CallbackTable 陣列應該一律以CF_CALLBACK_REGISTRATION_END結尾。
[in, optional] CallbackContext
CallbackContext 是為了方便同步提供者而提供。 每當在目前的同步根目錄上叫用其中一個回呼函式時,平臺都會記住此 CallbackContext ,並傳回同步提供者。 CallbackContext 的良好用法是同步提供者本身結構的指標,可維護此連線的狀態。
[in] ConnectFlags
同步提供者可以藉由將 ConnectFlags 傳遞至此 API 來叫用回呼時,要求提供其他資訊。 支援下列旗標:
要求 | Description |
---|---|
REQUEST_PROCESS_INFO | 當指定此旗標時,平臺會在回呼參數中傳回凍結程式的完整影像路徑。 |
REQUIRE_FULL_FILE_PATH | 當指定此旗標時,平臺會傳回回呼參數中要求之佔位元的完整路徑。 |
BLOCK_SELF_IMPLICIT_HYDRATION | 當防病毒軟體掃描同步提供者在非凍結雲端檔案佔位元元上的同步處理提供者文件系統活動時,可能會透過 CfHydratePlaceholder 執行隱含凍結。 這類型的隱含凍結並非預期。 如果同步提供者從未起始隱含凍結作業本身,它可以指示平台封鎖所有這類隱含凍結作業,而不是稍後失敗 FETCH_DATA回 呼。 |
[out] ConnectionKey
成功傳回時,此 API 會將不透明的 ConnectionKey 傳回至同步提供者。 這代表剛建立的通道,而且同步提供者可能會記住 ConnectionKey ,並在呼叫各種同步提供者 API 時傳遞它。 如果同步提供者只預期建立單一連線, 則 ConnectionKey 可以儲存在全域中。 不過,平臺支援單一提供者進程同時連線到多個不同的同步根目錄,而且每個連線都會傳回不同的 ConnectionKey 。 儲存每個 ConnectionKey 的好位置會位於 CallbackContext 所識別的同步提供者內部結構內。
傳回值
如果函式成功,則會傳 S_OK
回 。 否則,它會傳回 HRESULT 錯誤碼。
備註
這會起始同步提供者與同步篩選器之間的雙向通道。 同步提供者通常會在啟動后立即呼叫此 API,一旦初始化並準備好服務要求。
同步根目錄必須先向平台註冊,才能連線。 針對指定的 SyncRootPath,在任何指定時間最多可以建立一個連線。
同步提供者應該具有要連線之同步根 目錄的WRITE_DATA 或 WRITE_DAC 存取權,否則 API 將會因為 HRESULT (ERROR_CLOUD_FILE_ACCESS_DENIED) 而失敗。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1709 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | cfapi.h |
程式庫 | CldApi.lib |
Dll | CldApi.dll |