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 结尾的 Unicode 字符串的指针,该字符串包含检查点文件的还原路径。 如果不需要此参数,请为此参数传递 NULL

[in] pwszLogPath

指向包含当前日志文件目录的以 null 结尾的 Unicode 字符串的指针。 如果不需要此参数,请为此参数传递 NULL

[in] rgrstmap

包含还原映射 的CSEDB_RSTMAP 结构的数组。 如果要执行完整数据库还原,此参数将指定备份数据库的名称,以及还原后该数据库的新名称。 备份数据库名称由 pwszDatabaseName 成员引用,新数据库名称由 pwszNewDatabaseName 成员引用。 如果目的是为备份数据库和还原的数据库保留相同的名称,请将 pwszNewDatabaseNamepwszDatabaseName 成员设置为同一名称。 备份数据库名称是从备份客户端调用 CertSrvRestoreGetDatabaseLocations 函数返回的路径构造的。 在完整备份期间会调用 CertSrvRestoreGetDatabaseLocations,备份客户端将保存返回的路径。

如果要执行增量还原,请为此参数传递 NULL

[in] crstmap

rgrstmap 数组中的元素数。 如果要执行增量还原,则为此参数传递零。

[in] pwszBackupLogPath

指向包含备份日志目录路径的以 null 结尾的 Unicode 字符串的指针。 如果不需要此参数,请为此参数传递 NULL

[in] genLow

在此还原会话中还原的最小日志编号。 日志文件采用edbXXXXX.log形式,其中 XXXXX 是五个十六进制数字值。 例如,edb00001.log 是内部数据库创建的第一个日志文件。 对于此函数, genLow 中的值 1 对应于日志文件edb00001.log。

[in] genHigh

在此还原会话中还原的最高日志编号。

返回值

返回值为 HRESULT值为 S_OK 表示成功。

注解

使用此函数注册还原操作。 所有后续还原操作都将互锁。 在调用 CertSrvRestoreRegisterComplete 之前,将阻止还原目标启动 (或成功执行对 CertSrvRestoreRegister) 的另一次调用。

还原多个增量备份时,增量备份的注册顺序并不重要。 但是,在注册增量备份之前,必须注册完整数据库备份。

此函数要求调用帐户是本地管理员。 如果这不切实际,请改用 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
标头 certbcli.h (包括 Certsrv.h)
Library Certadm.lib
DLL Certadm.dll

另请参阅

CertSrvRestoreRegisterComplete

CertSrvRestoreRegisterThroughFile

使用证书服务备份和还原函数