CertSrvBackupRead 함수(certbcli.h)
CertSrvBackupRead 함수는 Certificate Services 파일에서 바이트를 읽습니다.
구문
HRESULT CERTBCLI_API CertSrvBackupRead(
[in] HCSBC hbc,
[out] VOID *pvBuffer,
[in] DWORD cbBuffer,
[out] DWORD *pcbRead
);
매개 변수
[in] hbc
Certificate Services 백업 컨텍스트에 대한 핸들입니다.
[out] pvBuffer
백업 중인 파일에서 읽은 바이트를 포함하는 스토리지에 대한 Void 포인터입니다.
[in] cbBuffer
pvBuffer에서 참조하는 스토리지 영역의 크기입니다.
[out] pcbRead
CertSrvBackupRead에서 읽은 실제 바이트 수를 나타내는 DWORD 값에 대한 포인터입니다. 파일의 끝에 도달한 경우 읽은 바이트 수가 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 |
헤더 | certbcli.h(Certsrv.h 포함) |
라이브러리 | Certadm.lib |
DLL | Certadm.dll |