BackupRead 함수(winbase.h)

BackupRead 함수를 사용하여 보안 정보를 포함하여 파일 또는 디렉터리를 백업할 수 있습니다. 함수는 지정된 파일 또는 디렉터리에 연결된 데이터를 버퍼로 읽고 WriteFile 함수를 사용하여 백업 매체에 쓸 수 있습니다.

구문

BOOL BackupRead(
  [in]  HANDLE  hFile,
  [out] LPBYTE  lpBuffer,
  [in]  DWORD   nNumberOfBytesToRead,
  [out] LPDWORD lpNumberOfBytesRead,
  [in]  BOOL    bAbort,
  [in]  BOOL    bProcessSecurity,
  [out] LPVOID  *lpContext
);

매개 변수

[in] hFile

백업할 파일 또는 디렉터리에 대한 핸들입니다. 핸들을 가져오려면 CreateFile 함수를 호출합니다. ACCESS_SYSTEM_SECURITY 액세스 권한으로 파일 핸들을 만들지 않는 한 SACL은 읽지 않습니다. 자세한 내용은 파일 보안 및 액세스 권한을 참조하세요.

핸들은 동기(오버랩되지 않음)여야 합니다. 즉, CreateFile이 호출될 때 FILE_FLAG_OVERLAPPED 플래그를 설정해서는 안 됩니다. 이 함수는 수신하는 핸들이 동기식인지 확인하지 않으므로 동기 핸들에 대한 오류 코드를 반환하지 않지만 비동기(겹침) 핸들을 사용하여 호출하면 디버그하기가 매우 어려운 미묘한 오류가 발생할 수 있습니다.

플래그 FILE_FLAG_NO_BUFFERING CreateFile을 호출한 경우 BackupRead 함수가 실패할 수 있습니다. 이 경우 GetLastError 함수는 ERROR_INVALID_PARAMETER 값을 반환합니다.

[out] lpBuffer

데이터를 수신하는 버퍼에 대한 포인터입니다.

[in] nNumberOfBytesToRead

버퍼의 길이(바이트)입니다. 버퍼 크기는 WIN32_STREAM_ID 구조체의 크기보다 커야 합니다.

[out] lpNumberOfBytesRead

읽은 바이트 수를 수신하는 변수에 대한 포인터입니다.

함수가 0이 아닌 값을 반환하고 lpNumberOfBytesRead 가 가리키는 변수가 0이면 파일 핸들과 연결된 모든 데이터가 읽혀집니다.

[in] bAbort

핸들에서 BackupRead 사용을 완료했는지 여부를 나타냅니다. 파일을 백업하는 동안 이 매개 변수를 FALSE로 지정 합니다. BackupRead 사용이 완료되면 이 매개 변수에 TRUE를 지정하고 적절한 lpContext를 전달하여 BackupRead를 한 번 더 호출해야 합니다. bAbort가 TRUE이면 lpContext를 전달해야 합니다. 다른 모든 매개 변수는 무시됩니다.

[in] bProcessSecurity

함수가 파일 또는 디렉터리에 대한 ACL(액세스 제어 목록) 데이터를 복원할지 여부를 나타냅니다.

bProcessSecurityTRUE이면 ACL 데이터가 백업됩니다.

[out] lpContext

백업 작업 중에 컨텍스트 정보를 유지하기 위해 BackupRead 에서 사용하는 내부 데이터 구조에 대한 포인터를 수신하는 변수에 대한 포인터입니다.

지정된 파일 또는 디렉터리에 대한 BackupRead를 처음 호출하기 전에 lpContext에서 가리키는 변수를 NULL로 설정해야 합니다. 함수는 데이터 구조에 대한 메모리를 할당한 다음 해당 구조를 가리키도록 변수를 설정합니다. lpContext 또는 BackupRead 호출 간에 가리키는 변수를 변경해서는 안 됩니다.

데이터 구조에서 사용하는 메모리를 해제하려면 백업 작업이 완료되면 bAbort 매개 변수가 TRUE로 설정된 BackupRead를 호출합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값이 0이 되며 이는 I/O 오류가 발생했음을 나타냅니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 함수는 암호화된 파일 시스템에서 암호화된 파일을 백업하는 데 사용할 수 없습니다. 해당 용도 로 ReadEncryptedFileRaw 를 사용합니다.

BackupRead가 데이터를 읽는 동안 오류가 발생하는 경우 호출 프로세스는 BackupSeek 함수를 호출하여 잘못된 데이터를 건너뛸 수 있습니다.

BackupWrite 함수를 사용하여 파일 또는 디렉터리를 복원해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

BackupSeek

BackupWrite

Backup 애플리케이션 만들기

ReadEncryptedFileRaw

WIN32_STREAM_ID