Функция CertSrvRestoreGetDatabaseLocationsW (certbcli.h)

Функция CertSrvRestoreGetDatabaseLocations используется как в сценариях резервного копирования, так и для восстановления и извлекает список имен расположений баз данных служб сертификатов для всех файлов, для которых выполняется резервное копирование или восстановление.

Синтаксис

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

Параметры

[in] hbc

Дескриптор для контекста резервного копирования или восстановления служб сертификатов.

[out] ppwszzDatabaseLocationList

Указатель на указатель WCHAR для получения списка имен расположений базы данных, завершаемых пустым значением, имени каталога журнала и системного (или контрольного каталога). После каждого имени имеется символ NULL, а в конце списка — дополнительный символ NULL. Имя расположения будет в формате UNC "## \\Server\SharePoint\... Path...\FileName.ext". Имена каталогов будут иметь ту же форму, но без конечного "\FileName.ext". Текст "##" обозначает тип файла резервной копии служб сертификатов (CSBFT_*) и хранится в виде одного символа Юникода , отличного от null, с префиксом для каждого пути UNC. Тег типа определен в Certbcli.h и может быть одним из следующих значений для этой функции.

Значение Значение
CSBFT_CERTSERVER_DATABASE
Имя файла базы данных служб сертификатов, включая путь.
CSBFT_CHECKPOINT_DIR
Каталог системы (или контрольных точек) служб сертификатов.
CSBFT_LOG_DIR
Каталог журнала базы данных служб сертификатов.
 

При этом необходимо освободить выделенную память путем вызова CertSrvBackupFree.

Задание *ppwszzDatabaseLocationListзначения NULL перед вызовом этой функции является необязательным.

[out] pcbSize

Указатель на значение DWORD , указывающее количество байтов в ppwszzDatabaseLocationList.

Возвращаемое значение

Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение.

Комментарии

Для успешного выполнения этого метода должны быть запущены службы сертификатов.

Имя этой функции в Certadm.dll — CertSrvRestoreGetDatabaseLocationsW. Эту форму имени необходимо использовать при вызове GetProcAddress. Кроме того, эта функция определена как тип FNCERTSRVRESTOREGETDATABASELOCATIONSW в файле заголовка Certbcli.h.

Примеры

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
Header certbcli.h (включая Certsrv.h)
Библиотека Certadm.lib
DLL Certadm.dll

См. также раздел

CertSrvBackupFree

Использование функций резервного копирования и восстановления служб сертификатов