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 中的值會對應至記錄檔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)
程式庫 Certadm.lib
Dll Certadm.dll

另請參閱

CertSrvRestoreRegisterComplete

CertSrvRestoreRegisterThroughFile

使用憑證服務備份和還原函式