다음을 통해 공유


PrepareLogArchive 함수(clfsw32.h)

보관을 위한 물리적 로그를 준비합니다. 함수는 현재 활성 로그의 스냅샷 사용하고, 활성 로그 익스텐트를 위해 정렬된 로그 보관 설명자 집합을 빌드하고, 로그 보관 컨텍스트를 반환합니다.

이 로그 보관 컨텍스트를 GetNextLogArchiveExtent에 전달하면 클라이언트는 로그 보관 익스텐트 집합을 반복하여 로그를 보관할 수 있습니다. 보관할 레코드 범위를 지정할 수도 있습니다.

구문

CLFSUSER_API BOOL PrepareLogArchive(
  [in]            HANDLE                    hLog,
  [in, out]       PWSTR                     pszBaseLogFileName,
  [in]            ULONG                     cLen,
  [in, optional]  const PCLFS_LSN           plsnLow,
  [in, optional]  const PCLFS_LSN           plsnHigh,
  [out, optional] PULONG                    pcActualLength,
  [out]           PULONGLONG                poffBaseLogFileData,
  [out]           PULONGLONG                pcbBaseLogFileLength,
  [out]           PCLFS_LSN                 plsnBase,
  [out]           PCLFS_LSN                 plsnLast,
  [out]           PCLFS_LSN                 plsnCurrentArchiveTail,
  [out]           PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
);

매개 변수

[in] hLog

CreateLogFile을 성공적으로 호출하여 얻은 로그에 대한 핸들입니다.

이 핸들은 전용 또는 멀티플렉싱 로그에 대한 핸들일 수 있습니다.

[in, out] pszBaseLogFileName

기본 로그의 정규화된 경로를 수신하기 위해 사용자가 할당한 버퍼에 대한 포인터입니다.

버퍼가 충분히 크지 않으면 종료 시 잘린 파일 경로가 포함되며 ERROR_BUFFER_OVERFLOW 상태 코드로 인해 함수가 실패합니다.

파일 경로의 길이는 pcActualLength가 가리키는 변수에 반환됩니다. 클라이언트는 충분히 큰 이름 버퍼를 사용하여 실패한 호출을 다시 시도할 수 있습니다.

[in] cLen

pszBaseLogFileName 버퍼의 크기(와이드 문자)입니다.

[in, optional] plsnLow

로그 클라이언트에 로그 보관 정보가 필요한 활성 로그 범위의 하위 끝의 LSN(로그 시퀀스 번호)을 지정하는 CLFS_LSN 구조체 에 대한 포인터입니다.

이 매개 변수를 생략하면 범위의 아래쪽 끝은 기본적으로 로그 보관 꼬리의 LSN으로 설정됩니다.

[in, optional] plsnHigh

로그 클라이언트에 로그 보관 정보가 필요한 활성 로그 범위의 상위 엔드 LSN을 지정하는 CLFS_LSN 구조체에 대한 포인터입니다.

이 매개 변수를 생략하면 범위의 하이 엔드가 로그에 기록될 다음 LSN으로 기본 설정됩니다.

[out, optional] pcActualLength

기본 로그 경로 이름의 실제 길이(문자)를 수신하는 변수에 대한 포인터입니다.

이 값이 cLen보다 크면 함수는 pszBaseLogFileName 버퍼에 저장된 잘린 경로와 의미 있는 값으로 설정되지 않은 다른 모든 out 매개 변수가 있는 ERROR_BUFFER_OVERFLOW 상태 반환합니다.

[out] poffBaseLogFileData

기본 로그에서 메타데이터가 시작되는 오프셋을 수신하는 변수에 대한 포인터입니다.

기본 로그 pszBaseLogFileName 의 연속 익스텐트는 로그 메타데이터의 전체 내용(즉, poffBaseLogFileData 에서 pcbBaseLogFileLength까지)을 나타냅니다.

[out] pcbBaseLogFileLength

기본 로그의 정확한 길이(바이트)를 지정하는 변수에 대한 포인터입니다.

[out] plsnBase

활성 로그의 LSN(기본 로그 시퀀스 번호)을 수신하는 CLFS_LSN 구조체에 대한 포인터입니다.

[out] plsnLast

활성 로그에서 유효한 가장 높은 LSN을 수신하는 CLFS_LSN 구조체에 대한 포인터입니다.

[out] plsnCurrentArchiveTail

로그의 보관 꼬리의 현재 LSN을 수신하는 CLFS_LSN 구조체에 대한 포인터입니다.

[out] ppvArchiveContext

시스템에서 할당하는 보관 컨텍스트에 대한 포인터를 수신하는 변수에 대한 포인터입니다.

보관 컨텍스트는 보관 반복기 및 로그 핸들 컨텍스트의 커서 상태를 유지 관리합니다. 보관 클라이언트는 TerminateLogArchive를 호출하여 컨텍스트를 해제할 책임이 있습니다.

반환 값

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

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 다음 목록에서는 가능한 오류 코드를 식별합니다.

설명

보관 컨텍스트를 해제하려면 TerminateLogArchive 를 호출해야 합니다. 또는 메모리 누수가 발생할 수 있습니다.

TerminateLogArchive를 호출할 때까지 보관 중인 컨테이너는 재활용할 수 없습니다.

CreateLogFile에서 반환하는 핸들당 한 번에 하나의 보관 작업만 수행할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 clfsw32.h
라이브러리 Clfsw32.lib
DLL Clfsw32.dll

추가 정보

CLFS_LSN

일반적인 로그 파일 시스템 함수

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive