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

Использование функций резервного копирования и восстановления служб сертификатов