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 멤버에서 참조됩니다. 백업 데이터베이스와 복원된 데이터베이스 모두에 대해 동일한 이름을 유지하려는 경우 pwszNewDatabaseName 및 pwszDatabaseName 멤버를 모두 동일한 이름으로 설정합니다. 백업 데이터베이스 이름은 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

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