다음을 통해 공유


DumpLogRecords 함수(clfsw32.h)

지정된 로그를 검사합니다. 레코드 형식에 따라 로그 레코드를 필터링합니다. 및 는 호출자가 여는 출력 파일 스트림에 레코드를 배치합니다.

구문

CLFSUSER_API BOOL DumpLogRecords(
  [in]           PWSTR                     pwszLogFileName,
  [in]           CLFS_RECORD_TYPE          fRecordType,
  [in, optional] PCLFS_LSN                 plsnStart,
  [in, optional] PCLFS_LSN                 plsnEnd,
  [in, optional] PFILE                     pstrmOut,
  [in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
  [in, optional] CLFS_BLOCK_ALLOCATION     pfnAllocBlock,
  [in, optional] CLFS_BLOCK_DEALLOCATION   pfnFreeBlock,
  [in, optional] PVOID                     pvBlockAllocContext,
  [in]           ULONG                     cbBlock,
  [in]           ULONG                     cMaxBlocks
);

매개 변수

[in] pwszLogFileName

로그 스트림의 이름입니다.

이 이름은 CreateLogFile을 사용하여 로그를 만들 때 지정됩니다. 다음 예제에서는 사용할 형식을 식별합니다.

로그:<log name>[::<log stream name>]

<로그 이름> 는 파일 시스템의 유효한 파일 경로에 해당합니다.

<로그 스트림 이름> 는 로그에 있는 로그 스트림의 고유한 이름입니다.

자세한 내용은 로그 형식을 참조하세요.

[in] fRecordType

읽을 레코드의 형식입니다.

이 매개 변수는 다음 CLFS_RECORD_TYPE 상수 중 하나 이상일 수 있습니다.

의미
ClfsNullRecord
ClfsDataRecord의 기본 레코드 형식이 사용됩니다.
ClfsDataRecord
사용자 데이터 레코드를 읽습니다.
ClfsRestartRecord
다시 시작 레코드가 읽혀집니다.
ClfsClientRecord
다시 시작 및 데이터 레코드가 모두 읽혀집니다.
ClfsClientRecord
모든 유효한 데이터에 대한 마스크를 지정하거나 레코드를 다시 시작합니다.

[in, optional] plsnStart

로그 덤프 시퀀스의 LSN(시작 로그 시퀀스 번호)을 지정하는 CLFS_LSN 대한 포인터입니다.

이 매개 변수를 지정하는 경우 LSN은 로그의 활성 부분에 있는 유효한 로그 레코드의 주소여야 합니다. 그렇지 않으면 상태 ERROR_INVALID_PARAMETER 호출이 실패합니다.

이 매개 변수를 지정하지 않으면 덤프 시퀀스의 시작은 활성 로그의 시작입니다.

[in, optional] plsnEnd

덤프 시퀀스가 종료되어야 하는 LSN을 지정하는 CLFS_LSN 대한 포인터입니다.

이 LSN이 LSN 범위의 끝을 지나면 함수는 ERROR_HANDLE_EOF 반환합니다.

plsnStart와 달리 이 값은 활성 로그에서 유효한 레코드의 LSN일 필요는 없지만 유효한 LSN일 수 있습니다. LSN 값이 plsnEnd 보다 작거나 같은 레코드만 출력 스트림에 배치됩니다.

이 매개 변수가 NULL인 경우 덤프 함수는 활성 로그의 마지막 LSN(로그 헤드)을 사용합니다.

[in, optional] pstrmOut

로그 레코드가 배치되는 열린 출력 스트림에 대한 포인터입니다.

이 매개 변수를 지정하지 않으면 "stdout"이 기본값으로 사용됩니다.

[in, optional] pfnPrintRecord

사용자 정의 버퍼의 서식을 지정하고 출력 스트림 pstrmOut에 인쇄하는 사용자 정의 콜백 루틴입니다.

DumpLogRecords 함수는 기본적으로 내부 레코드 헤더를 pstrmOut에 출력하지만 사용자 버퍼의 서식을 지정하는 사용자 정의 콜백에 따라 달라집니다.

이 매개 변수가 NULL인 경우 DumpLogRecords 는 사용자 레코드 데이터를 출력 스트림에 16진수 숫자로 배치합니다.

[in, optional] pfnAllocBlock

로그 블록에 메모리를 할당하는 콜백 함수입니다.

이 매개 변수가 NULL인 경우 CLFS(Common Log File System)는 기본 블록 할당 함수를 제공합니다. pfnFreeBuffer 매개 변수를 사용하여 블록 해제 콜백을 지정한 경우 이 매개 변수는 NULL일 수 없습니다.

다음 예제에서는 블록 할당 콜백 함수의 구문을 식별합니다.

typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);

[in, optional] pfnFreeBlock

pfnAllocBuffer에서 할당한 로그 블록을 해제하는 콜백 함수입니다.

이 매개 변수가 NULL이면 CLFS는 기본 블록 할당 취소 함수를 제공합니다. pfnAllocBuffer 매개 변수를 사용하여 블록 할당 콜백을 지정한 경우 이 매개 변수는 NULL일 수 없습니다.

다음 예제에서는 블록 해제 콜백 함수의 구문을 식별합니다.

typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);

"ClfsBlockDeallocProc"의 버퍼 매개 변수는 pfnAllocBuffer가 가리키는 콜백을 사용하여 할당된 블록을 가리킵니다.

[in, optional] pvBlockAllocContext

버퍼가 지정된 경우 블록 할당 및 할당 취소 루틴에 사용자 컨텍스트로 전달되는 버퍼에 대한 포인터입니다.

pfnAllocBufferNULL이면 이 매개 변수는 무시됩니다.

[in] cbBlock

레코드가 마샬링되는 버퍼의 크기(바이트)입니다.

레코드가 이 값보다 긴 경우 레코드를 추가하거나 읽을 수 없습니다.

[in] cMaxBlocks

읽기 작업에 언제든지 할당할 수 있는 최대 블록 수입니다.

읽기 컨텍스트는 하나 이상의 읽기 블록을 사용합니다.

반환 값

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

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

요구 사항

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

추가 정보

CLFS_LSN

CLFS_RECORD_TYPE

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