Функция CertSrvRestoreRegisterW (certbcli.h)
Функция CertSrvRestoreRegister регистрирует восстановление служб сертификатов.
Синтаксис
HRESULT CERTBCLI_API CertSrvRestoreRegisterW(
[in] HCSBC hbc,
[in] WCHAR const *pwszCheckPointFilePath,
[in] WCHAR const *pwszLogPath,
[in] CSEDB_RSTMAPW [] rgrstmap,
[in] LONG crstmap,
[in] WCHAR const *pwszBackupLogPath,
[in] ULONG genLow,
[in] ULONG genHigh
);
Параметры
[in] hbc
Дескриптор контекста восстановления служб сертификатов. Этот дескриптор получается путем вызова функции CertSrvRestorePrepare .
[in] pwszCheckPointFilePath
Указатель на строку Юникода, завершающуюся null, которая содержит путь восстановления для файла проверка точки. Передайте значение NULL для этого параметра, если он не требуется.
[in] pwszLogPath
Указатель на строку Юникода, завершающуюся null, которая содержит текущий каталог файлов журнала. Передайте значение NULL для этого параметра, если он не требуется.
[in] rgrstmap
Массив CSEDB_RSTMAP структур, содержащих карту восстановления. Если выполняется полное восстановление базы данных, этот параметр указывает имя резервной базы данных, а также новое имя базы данных после ее восстановления. На имя резервной базы данных ссылается член pwszDatabaseName , а на новое имя базы данных — элемент pwszNewDatabaseName . Если цель состоит в том, чтобы сохранить одинаковое имя как для резервной, так и для восстановленной базы данных, задайте для элементов pwszNewDatabaseName и pwszDatabaseName одинаковое имя. Имя резервной базы данных создается из пути, возвращаемого вызовом клиента резервного копирования функции CertSrvRestoreGetDatabaseLocations . CertSrvRestoreGetDatabaseLocations был бы вызван во время полного резервного копирования, а клиент резервного копирования сохранил бы возвращенный путь.
Если выполняется добавочное восстановление, передайте значение NULL для этого параметра.
[in] crstmap
Количество элементов в массиве rgrstmap . Передайте ноль для этого параметра, если выполняется добавочное восстановление.
[in] pwszBackupLogPath
Указатель на строку Юникода, завершающуюся null, которая содержит путь к каталогу журнала резервного копирования. Передайте значение NULL для этого параметра, если он не требуется.
[in] genLow
Наименьший номер журнала, который был восстановлен в этом сеансе восстановления. Файлы журнала имеют вид edbXXXXX.log, где XXXXX — это значение пяти шестнадцатеричных цифр. Например, edb00001.log — это первый файл журнала, созданный внутренней базой данных. Для целей этой функции значение , равное одному в genLow , соответствует файлу журнала edb00001.log.
[in] genHigh
Самый высокий номер журнала, который был восстановлен в этом сеансе восстановления.
Возвращаемое значение
Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение.
Комментарии
Используйте эту функцию для регистрации операции восстановления. Все последующие операции восстановления будут заблокированы. Целевому объекту восстановления не удастся запустить (или успешно выполнить другой вызов CertSrvRestoreRegister), пока не будет вызван CertSrvRestoreRegisterComplete .
При восстановлении нескольких добавочных резервных копий порядок регистрации добавочных резервных копий не имеет значения. Однако перед регистрацией добавочных резервных копий необходимо зарегистрировать полную резервную копию базы данных.
Для этой функции требуется, чтобы вызывающая учетная запись была локальным администратором. Если это нецелесообразно, используйте вместо него функцию CertSrvRestoreRegisterThroughFile . Функция CertSrvRestoreRegisterThroughFile требует, чтобы у вызывающей учетной записи была привилегия на восстановление.
Примеры
// szMyDBName is the returned path from the backup client's
// call to CertSrvRestoreGetDatabaseLocations. This value would
// have been saved during a full backup operation.
CSEDB_RSTMAP rgrstmap[1] =
{
szMyDBName, // database name
szMyDBName // new name same as old
};
HRESULT hr = 0;
// Register a restore operation.
// hsb is an HCSBC created previously by CertSrvRestorePrepare.
hr = CertSrvRestoreRegister(
hsb,
NULL,
szMyRestoreLogPath, // defined elsewhere
rgrstmap,
1,
szMyBackupLogPath, // defined elsewhere
1, // edb00001.log
0x1a // edb0001a.log
);
if (S_OK != hr)
{
printf("Failed CertSrvRestoreRegister - %x\n", hr);
exit(1); // Or other appropriate error action.
}
// Continue processing.
// When done, call CertSrvRestoreRegisterComplete (not shown).
// ...
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certbcli.h (включая Certsrv.h) |
Библиотека | Certadm.lib |
DLL | Certadm.dll |
См. также раздел
CertSrvRestoreRegisterComplete
CertSrvRestoreRegisterThroughFile
Использование функций резервного копирования и восстановления служб сертификатов