Поделиться через


Функция 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

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

CertSrvBackupClose

CertSrvBackupOpenFile

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