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