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 |