Поделиться через


Функция 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

Содержит дескриптор службы каталогов, полученный из функции DSBind или DSBindWithCred .

[in] pszNameContext

Указатель на строку, завершающуюся null, которая указывает различающееся имя контекста именования для синхронизации. Параметр pszNameContext является необязательным; Если его значение равно NULL, контекст именования конфигурации реплицируется.

[in] ulFlags

Передает дополнительные данные, используемые для обработки запроса. Этот параметр может быть сочетанием следующих значений.

DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE

Создает неустранимую ошибку, если не удается связаться с каким-либо сервером или если какой-либо сервер недоступен из-за отключенной или неисправной топологии.

DS_REPSYNCALL_CROSS_SITE_BOUNDARIES

Выполняет синхронизацию через границы узелов. По умолчанию DsReplicaSyncAll пытается синхронизировать только с контроллерами домена на том же сайте, что и домашняя система. Установите этот флаг, чтобы попытаться синхронизироваться со всеми контроллерами домена в корпоративном лесу. Однако контроллеры домена можно синхронизировать только в том случае, если они соединены синхронным транспортом (RPC).

DS_REPSYNCALL_DO_NOT_SYNC

Полностью отключает синхронизацию. Топология по-прежнему анализируется, и по-прежнему выявляются недоступные или недоступные серверы.

DS_REPSYNCALL_ID_SERVERS_BY_DN

В случае неустранимой ошибки возвращает различающиеся имена сервера (DN) вместо DNS-имен GUID.

DS_REPSYNCALL_NO_OPTIONS

Этот параметр не действует.

DS_REPSYNCALL_PUSH_CHANGES_OUTWARD

Передает изменения с домашнего сервера всем партнерам с помощью транзитивной репликации. Это отменяет направление репликации и порядок выполнения наборов репликации из обычного режима выполнения по запросу.

DS_REPSYNCALL_SKIP_INITIAL_CHECK

Предполагает, что все серверы отвечают. Это ускоряет работу функции DsReplicaSyncAll , но если некоторые серверы не отвечают, некоторые транзитивные репликации могут быть заблокированы.

DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY

Отключает транзитивную репликацию. Синхронизация выполняется только со смежными серверами.

[in] pFnCallBack

Указатель на определяемую приложением функцию SyncUpdateProc , вызываемую функцией DsReplicaSyncAll , когда она обнаруживает ошибку, инициирует синхронизацию двух серверов, завершает синхронизацию двух серверов или завершает синхронизацию всех серверов на сайте.

[in, optional] pCallbackData

Указатель на определяемые приложением данные, переданные в качестве первого аргумента функции обратного вызова SyncUpdateProc , на которую указывает параметр pFnCallBack .

[out, optional] pErrors

Массив указателей на , заканчивающийся null
DS_REPSYNCALL_ERRINFO структуры, содержащие ошибки, возникшие во время синхронизации. Память, используемая для хранения массива указателей и MsCS\mscs\clusctl_resource_type_get_private_property_fmts.xml данных, выделяется в виде одного блока памяти и должна быть освобождена, если один вызов LocalFree больше не требуется с возвращаемым значением указателя в pErrors , используемом в качестве аргумента.

Возвращаемое значение

Если функция завершается успешно, возвращаемое значение будет ERROR_SUCCESS.

Если функция завершается сбоем, возвращается следующее значение.

Комментарии

Функция DsReplicaSyncAll пытается выполнить привязку ко всем серверам перед созданием топологии для синхронизации. Если с сервером не удается связаться, функция исключает этот сервер из топологии и пытается обойти его. Установка флага DS_REPSYNCALL_SKIP_INITIAL_CHECK в ulFlags обходит начальную привязку.

Если с сервером не удается связаться, функция DsReplicaSyncAll пытается маршрутизировать его и реплицировать с максимально возможного числа серверов, если DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE не задано в ulFlags.

Функция DsReplicaSyncAll может использовать функцию обратного вызова, на которую указывает pFnCallBack , для информирования конечного пользователя о текущем состоянии репликации. Выполнение функции DsReplicaSyncAll приостанавливается при вызове функции, на которую указывает pFnCallBack. Если значение, возвращаемое функцией обратного вызова, равно TRUE, репликация продолжается; в противном случае функция DsReplicaSyncAll завершает репликацию.

Примечание

Заголовок ntdsapi.h определяет DsReplicaSyncAll в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header ntdsapi.h
Библиотека Ntdsapi.lib
DLL Ntdsapi.dll

См. также раздел

DS_REPSYNCALL_ERRINFO

DS_REPSYNCALL_UPDATE

Контроллер домена и функции управления репликацией

DsReplicaSync

SyncUpdateProc