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


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

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка ntdsapi.h
библиотеки Ntdsapi.lib
DLL Ntdsapi.dll

См. также

DS_REPSYNCALL_ERRINFO

DS_REPSYNCALL_UPDATE

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

DsReplicaSync

SyncUpdateProc