Share via


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 멤버에서 참조됩니다. 백업 데이터베이스와 복원된 데이터베이스 모두에 대해 동일한 이름을 유지하려는 경우 pwszNewDatabaseNamepwszDatabaseName 멤버를 모두 동일한 이름으로 설정합니다. 백업 데이터베이스 이름은 CertSrvRestoreGetDatabaseLocations 함수에 대한 백업 클라이언트의 호출에 의해 반환된 경로에서 생성됩니다. CertSrvRestoreGetDatabaseLocations 는 전체 백업 중에 호출되었고 백업 클라이언트는 반환된 경로를 저장했을 것입니다.

증분 복원을 수행하는 경우 이 매개 변수에 대해 NULL 을 전달합니다.

[in] crstmap

rgrstmap 배열의 요소 수입니다. 증분 복원을 수행하는 경우 이 매개 변수에 대해 0을 전달합니다.

[in] pwszBackupLogPath

백업 로그 디렉터리의 경로를 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 필요하지 않은 경우 이 매개 변수에 대해 NULL 을 전달합니다.

[in] genLow

이 복원 세션에서 복원된 가장 낮은 로그 번호입니다. 로그 파일은 edbXXXXX.log 형식입니다. 여기서 XXXXX는 56진수 값입니다. 예를 들어 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

인증서 서비스 백업 및 복원 함수 사용