다음을 통해 공유


CertSrvRestoreGetDatabaseLocationsW 함수(certbcli.h)

CertSrvRestoreGetDatabaseLocations 함수는 백업 및 복원 시나리오에서 모두 사용되며 백업 또는 복원되는 모든 파일에 대한 인증서 서비스 데이터베이스 위치 이름 목록을 검색합니다.

구문

HRESULT CERTBCLI_API CertSrvRestoreGetDatabaseLocationsW(
  [in]  HCSBC hbc,
  [out] PWSTR *ppwszzDatabaseLocationList,
  [out] DWORD *pcbSize
);

매개 변수

[in] hbc

Certificate Services 백업 또는 복원 컨텍스트에 대한 핸들입니다.

[out] ppwszzDatabaseLocationList

Null로 종료된 데이터베이스 위치 이름, 로그 디렉터리 이름 및 시스템(또는 검사점) 디렉터리 이름 목록을 수신하는 WCHAR 포인터에 대한 포인터입니다. 모든 이름 뒤에는 null 문자가 있고 목록 끝에는 추가 null 문자가 있습니다. 위치 이름은 UNC 형식 "## \\Server\SharePoint\... Path...\FileName.ext". 디렉터리 이름은 같은 형식이지만 후행 "\FileName.ext"는 없습니다. "##" 텍스트는 인증서 서비스 백업 파일 형식(CSBFT_*)을 표시하며 각 UNC 경로에 접두사로 접두사로 지정된 null이 아닌 단일 유니코드 문자로 저장됩니다. 형식 태그는 Certbcli.h에 정의되며 이 함수에 대해 다음 값 중 하나일 수 있습니다.

의미
CSBFT_CERTSERVER_DATABASE
경로를 포함한 Certificate Services 데이터베이스 파일 이름입니다.
CSBFT_CHECKPOINT_DIR
Certificate Services 데이터베이스 시스템(또는 검사점) 디렉터리.
CSBFT_LOG_DIR
Certificate Services 데이터베이스 로그 디렉터리.
 

CertSrvBackupFree를 호출하여 이 할당된 메모리를 해제해야 합니다.

이 함수를 호출하기 전에 *ppwszzDatabaseLocationListNULL 로 설정하는 것은 선택 사항입니다.

[out] pcbSize

ppwszzDatabaseLocationList의 바이트 수를 지정하는 DWORD 값에 대한 포인터입니다.

반환 값

반환 값은 HRESULT입니다. S_OK 값은 성공을 나타냅니다.

설명

이 메서드가 성공하려면 인증서 서비스를 실행해야 합니다.

Certadm.dll 이 함수의 이름은 CertSrvRestoreGetDatabaseLocationsW입니다. GetProcAddress를 호출할 때 이 형식의 이름을 사용해야 합니다. 또한 이 함수는 Certbcli.h 헤더 파일에서 FNCERTSRVRESTOREGETDATABASELOCATIONSW 형식으로 정의됩니다.

예제

FNCERTSRVRESTOREGETDATABASELOCATIONSW* pfnGetDBLocs;
char *  szGetDBLocsFunc = "CertSrvRestoreGetDatabaseLocationsW";
WCHAR * pwszzDBLocs;
DWORD   nListBytes=0;
HRESULT hr=0;

// Get the address for the desired function.    
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnGetDBLocs = (FNCERTSRVRESTOREGETDATABASELOCATIONSW*)
    GetProcAddress(hInst, szGetDBLocsFunc);
if ( NULL == pfnGetDBLocs )
{
    printf("Failed GetProcAddress - %s, error=%d\n",
           szGetDBLocsFunc,
           GetLastError() );
    exit(1); // Or other appropriate error action.
}

// Determine the names of the database locations.
// hCSBC was set by an earlier call to CertSrvRestorePrepare.
hr = pfnGetDBLocs(hCSBC, &pwszzDBLocs, &nListBytes);
if (FAILED(hr))
{
    printf("Failed pfnGetDBLocs call [%x]\n", hr);
    exit(1); // Or other appropriate error action.
}
else
{
    printf("%d bytes for DB locations\n", nListBytes);
    WCHAR * pwszFile = pwszzDBLocs;
    // Process the list.
    while ( L'\0' != *pwszFile )
    {
        // Use the file name referenced by pwszFile.
        // Here it is merely displayed.
        printf("%02x: %ws\n", *pwszFile, &pwszFile[1]);
        // Move to the next database file name.
        // + 1 moves past the null terminator.
        pwszFile+=(wcslen(pwszFile)) + 1; 
    }
    // Free the allocated memory.
    // pfnBackupFree is the address of the 
    // CertSrvBackupFree function.
    pfnBackupFree(pwszzDBLocs);
}

요구 사항

요구 사항
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certbcli.h(Certsrv.h 포함)
라이브러리 Certadm.lib
DLL Certadm.dll

추가 정보

CertSrvBackupFree

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