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