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 상수 중 하나 이상일 수 있습니다.
[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
버퍼가 지정된 경우 블록 할당 및 할당 취소 루틴에 사용자 컨텍스트로 전달되는 버퍼에 대한 포인터입니다.
pfnAllocBuffer가 NULL이면 이 매개 변수는 무시됩니다.
[in] cbBlock
레코드가 마샬링되는 버퍼의 크기(바이트)입니다.
레코드가 이 값보다 긴 경우 레코드를 추가하거나 읽을 수 없습니다.
[in] cMaxBlocks
읽기 작업에 언제든지 할당할 수 있는 최대 블록 수입니다.
읽기 컨텍스트는 하나 이상의 읽기 블록을 사용합니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 다음 목록에서는 가능한 오류 코드를 식별합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | clfsw32.h |
라이브러리 | Clfsw32.lib |
DLL | Clfsw32.dll |