Функция CertSrvBackupRead (certbcli.h)
Функция CertSrvBackupRead считывает байты из файла служб сертификатов.
Синтаксис
HRESULT CERTBCLI_API CertSrvBackupRead(
[in] HCSBC hbc,
[out] VOID *pvBuffer,
[in] DWORD cbBuffer,
[out] DWORD *pcbRead
);
Параметры
[in] hbc
Дескриптор контекста резервного копирования служб сертификатов.
[out] pvBuffer
Пустой указатель на хранилище, которое будет содержать байты, считанные из файла, для которого создается резервная копия.
[in] cbBuffer
Размер области хранения, на которую ссылается pvBuffer.
[out] pcbRead
Указатель на значение DWORD , представляющее фактическое количество байтов, считанных CertSrvBackupRead. Число прочитанных байтов может быть меньше размера области хранения, выделенной для pvBuffer , если достигнут конец файла.
Возвращаемое значение
Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение.
Комментарии
После открытия файла для резервного копирования (с помощью CertSrvBackupOpenFile) вызовите CertSrvBackupRead , чтобы получить содержимое файла, и вызовите подпрограмму конкретного приложения для записи содержимого на носитель резервного копирования. CertSrvBackupRead и подпрограмму конкретного приложения можно поместить в цикл до тех пор, пока все байты файла не будут прочитаны и не будут архивированы. Завершив чтение файла, закройте его, вызвав CertSrvBackupClose.
Примеры
#include <windows.h>
#include <stdio.h>
#include <Certbcli.h>
#define BUFFSIZE 524288
FNCERTSRVBACKUPREAD* pfnRead;
char * szBackupReadFunc = "CertSrvBackupRead";
BYTE ReadBuff[BUFFSIZE];
DWORD cbRead=0;
HRESULT hr=0;
// Get the address for the desired function.
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnRead = (FNCERTSRVBACKUPREAD*)GetProcAddress(hInst,
szBackupReadFunc);
if ( NULL == pfnRead )
{
printf("Failed GetProcAddress - %s, error=%d\n",
szBackupReadFunc,
GetLastError() );
exit(1); // Or other appropriate error action.
}
// Read the file.
// hCSBC represents an HCSBC used in
// an earlier call to CertSrvBackupOpenFile.
// To read the entire file, this code
// would be placed in a loop.
hr = pfnRead( hCSBC,
&ReadBuff,
BUFFSIZE,
&cbRead );
if (FAILED(hr))
{
printf("Failed pfnRead call [%x]\n", hr);
exit(1); // Or other appropriate error action.
}
// Use the bytes read as needed. For example,
// in an application-specific routine to back
// up the file contents.
// ...
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certbcli.h (включая Certsrv.h) |
Библиотека | Certadm.lib |
DLL | Certadm.dll |
См. также раздел
Использование функций резервного копирования и восстановления служб сертификатов