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

Certificate Services 復元コンテキストへのハンドル。 このハンドルは、 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 配列内の要素の数。 増分復元を実行する場合は、このパラメーターに 0 を渡します。

[in] pwszBackupLogPath

バックアップ ログ ディレクトリのパスを含む null で終わる Unicode 文字列へのポインター。 このパラメーターが不要な場合は 、NULL を 渡します。

[in] genLow

この復元セッションで復元された最小のログ番号。 ログ ファイルはedbXXXXX.log形式で、XXXXX は 5 つの 16 進数の値です。 たとえば、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

証明書サービスのバックアップと復元の機能の使用