DsReplicaSyncAllA 函式 (ntdsapi.h)

DsReplicaSyncAll 函式會視需要,使用可轉移的複寫,同步處理伺服器與其他所有伺服器。 根據預設, DsReplicaSyncAll 會將伺服器與其站台中的所有其他伺服器同步處理;不過,您也可以使用它跨網站界限進行同步處理。

語法

NTDSAPI DWORD DsReplicaSyncAllA(
  [in]            HANDLE                                  hDS,
  [in]            LPCSTR                                  pszNameContext,
  [in]            ULONG                                   ulFlags,
  [in]            BOOL(* )(LPVOID,PDS_REPSYNCALL_UPDATEA) pFnCallBack,
  [in, optional]  LPVOID                                  pCallbackData,
  [out, optional] PDS_REPSYNCALL_ERRINFOA                 **pErrors
);

參數

[in] hDS

包含從 DSBindDSBindWithCred 函式 取得的目錄服務句柄。

[in] pszNameContext

Null 終止字串的指標,指定要同步處理的命名內容辨別名稱。 pszNameContext 參數是選擇性的;如果其值為 NULL,則會復寫組態命名內容。

[in] ulFlags

傳遞用來處理要求的其他數據。 此參數可以是下列值的組合。

DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE

如果無法連絡任何伺服器,或因中斷或中斷拓撲而無法連線,則會產生嚴重錯誤。

DS_REPSYNCALL_CROSS_SITE_BOUNDARIES

跨越站台界限進行同步處理。 根據預設, DsReplicaSyncAll 只會嘗試與主系統相同站台中的 DC 進行同步處理。 將此旗標設定為嘗試與企業樹系中的所有 DC 同步處理。 不過,只有在同步 (RPC) 傳輸連線時,才能同步處理 DC。

DS_REPSYNCALL_DO_NOT_SYNC

停用所有的同步處理。 拓撲仍會進行分析,而且仍會識別無法使用或無法連線的伺服器。

DS_REPSYNCALL_ID_SERVERS_BY_DN

發生非嚴重錯誤時,傳回伺服器辨別名稱 (DN) ,而不是其 GUID DNS 名稱。

DS_REPSYNCALL_NO_OPTIONS

此選項沒有任何作用。

DS_REPSYNCALL_PUSH_CHANGES_OUTWARD

使用可轉移的複寫,將主伺服器中的變更推入到所有夥伴中。 這會反轉復寫的方向,以及從一般「提取」執行模式執行複寫集的順序。

DS_REPSYNCALL_SKIP_INITIAL_CHECK

假設所有的伺服器都有回應, 這可加速 DsReplicaSyncAll 函式的作業,但如果某些伺服器沒有回應,可能會封鎖某些可轉移的複寫。

DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY

停用可轉移的複寫; 只能在相鄰伺服器中執行同步處理。

[in] pFnCallBack

DsReplicaSyncAll 函式遇到錯誤、起始兩部伺服器的同步處理、完成兩部伺服器的同步處理,或完成站臺中所有伺服器的同步處理時,應用程式定義的 SyncUpdateProc 函式指標。

[in, optional] pCallbackData

傳遞為 pFnCallBack 參數所指向之 SyncUpdateProc 回呼函式第一個自變數的應用程式定義數據指標。

[out, optional] pErrors

指標的 NULL 終止陣列
DS_REPSYNCALL_ERRINFO 結構,其中包含同步處理期間發生的錯誤。 用來保存指標數位和 MsCS\mscs\clusctl_resource_type_get_private_property_fmts.xml 數據陣列的記憶體會配置為單一記憶體區塊,而且當單一呼叫 LocalFree 不再需要時,應該釋出,且在做為自變數的 pErrors 中傳回的指標值。

傳回值

如果函式成功,傳回值 會ERROR_SUCCESS

如果函式失敗,則傳回值如下所示。

備註

DsReplicaSyncAll 函式會先嘗試系結至所有伺服器,再產生要同步處理的拓撲。 如果無法連絡伺服器,函式會從拓撲中排除該伺服器,並嘗試解決此問題。 在ulFlags中設定DS_REPSYNCALL_SKIP_INITIAL_CHECK旗標會略過初始系結。

如果無法連絡伺服器,DsReplicaSyncAll 函式會嘗試路由傳送,並盡可能從多部伺服器進行復寫,除非在 ulFlags 中設定DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE

DsReplicaSyncAll 函式可以使用 pFnCallBack 所指向的回呼函式,讓使用者知道復寫的目前狀態。 DsReplicaSyncAll 函式的執行會在呼叫 pFnCallBack 所指向的函式時暫停。 如果回呼函式的傳回值為 TRUE,則復寫會繼續;否則, DsReplicaSyncAll 函式會終止複寫。

注意

ntdsapi.h 標頭會將 DsReplicaSyncAll 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 ntdsapi.h
程式庫 Ntdsapi.lib
Dll Ntdsapi.dll

另請參閱

DS_REPSYNCALL_ERRINFO

DS_REPSYNCALL_UPDATE

域控制器和復寫管理功能

DsReplicaSync

SyncUpdateProc