Функция CertSrvBackupGetDatabaseNamesW (certbcli.h)
Функция CertSrvBackupGetDatabaseNames извлекает список имен файлов базы данных служб сертификатов, для которого необходимо создать резервную копию для заданного контекста резервной копии.
Синтаксис
HRESULT CERTBCLI_API CertSrvBackupGetDatabaseNamesW(
[in] HCSBC hbc,
[out] PWSTR *ppwszzAttachmentInformation,
[out] DWORD *pcbSize
);
Параметры
[in] hbc
Дескриптор контекста резервного копирования служб сертификатов.
[out] ppwszzAttachmentInformation
Указатель на указатель WCHAR , который получит список имен файлов базы данных, заканчивающихся пустым значением. После каждого имени файла имеется символ NULL, а в конце списка — дополнительный символ NULL. Имя файла будет в формате UNC "## \\Server\SharePoint\... Path...\FileName.ext". Имена каталогов будут иметь ту же форму, но без конечного "\FileName.ext". Текст "##" обозначает тип файла резервной копии служб сертификатов (CSBFT_*) и хранится в виде одного символа Юникода , отличного от null, с префиксом для каждого пути UNC. Тег типа определен в Certbcli.h и может быть следующим значением для этой функции.
Значение | Значение |
---|---|
|
Имя файла базы данных служб сертификатов, включая путь. |
При этом необходимо освободить выделенную память путем вызова CertSrvBackupFree. Перед вызовом этой функции присвойте параметру *ppwszzAttachmentInformationзначение NULL .
[out] pcbSize
Указатель на значение DWORD , указывающее количество байтов в ppwszzAttachmentInformation.
Возвращаемое значение
Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение.
Комментарии
Имя этой функции в Certadm.dll — CertSrvBackupGetDatabaseNamesW. Эту форму имени необходимо использовать при вызове GetProcAddress. Кроме того, эта функция определяется как тип FNCERTSRVBACKUPGETDATABASENAMESW в файле заголовка Certbcli.h.
Примеры
FNCERTSRVBACKUPGETDATABASENAMESW* pfnGetDBNames;
char * szGetDBNamesFunc = "CertSrvBackupGetDatabaseNamesW";
WCHAR * pwszzDBFiles;
DWORD nListBytes=0;
HRESULT hr=0;
// Get the address for the desired function.
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnGetDBNames = (FNCERTSRVBACKUPGETDATABASENAMESW*)
GetProcAddress(hInst, szGetDBNamesFunc);
if ( NULL == pfnGetDBNames )
{
printf("Failed GetProcAddress - %s, error=%d\n",
szGetDBNamesFunc,
GetLastError() );
exit(1); // Or other appropriate error action.
}
// Determine the names of the database files.
// hCSBC was set by an earlier call to CertSrvBackupPrepare
hr = pfnGetDBNames(hCSBC, &pwszzDBFiles, &nListBytes);
if (FAILED(hr))
{
printf("Failed pfnGetDBNames call [%x]\n", hr);
exit(1); // Or other appropriate error action.
}
else
{
printf("%d bytes for DB file names\n", nListBytes);
WCHAR * pwszFile = pwszzDBFiles;
// 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(pwszzDBFiles);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certbcli.h (включая Certsrv.h) |
Библиотека | Certadm.lib |
DLL | Certadm.dll |
См. также раздел
Использование функций резервного копирования и восстановления служб сертификатов