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 成员引用。 如果目的是为备份数据库和还原的数据库保留相同的名称,请将 pwszNewDatabaseName 和 pwszDatabaseName 成员设置为同一名称。 备份数据库名称是从备份客户端调用 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