ClfsReadLogRecord 함수(wdm.h)
ClfsReadLogRecord 루틴은 CLFS 스트림에서 대상 레코드를 읽고 호출자가 스트림에서 이전 또는 팔로우하는 레코드를 읽는 데 사용할 수 있는 읽기 컨텍스트를 반환합니다.
구문
CLFSUSER_API NTSTATUS ClfsReadLogRecord(
[in] PVOID pvMarshalContext,
[in, out] PCLFS_LSN plsnFirst,
[in] CLFS_CONTEXT_MODE peContextMode,
[out] PVOID *ppvReadBuffer,
[out] PULONG pcbReadBuffer,
[out] PCLFS_RECORD_TYPE peRecordType,
[out] PCLFS_LSN plsnUndoNext,
[out] PCLFS_LSN plsnPrevious,
[out] PVOID *ppvReadContext
);
매개 변수
[in] pvMarshalContext
마샬링 영역을 나타내는 불투명 컨텍스트에 대한 포인터입니다. 호출자는 이전에 ClfsCreateMarshallingArea를 호출하여 이 포인터를 얻었습니다.
[in, out] plsnFirst
로그에서 대상 레코드의 LSN을 제공하는 CLFS_LSN 구조체에 대한 포인터입니다.
[in] peContextMode
ppvReadContext에서 반환된 읽기 컨텍스트의 초기 모드(ClfsContextUndoNext, ClfsContextPrevious 또는 ClfsContextForward)를 지정하는 CLFS_CONTEXT_MODE 열거형의 값입니다.
[out] ppvReadBuffer
대상 레코드의 데이터 버퍼에 대한 포인터를 수신하는 변수에 대한 포인터입니다.
[out] pcbReadBuffer
*ppvReadBuffer가 가리키는 버퍼의 크기(바이트)를 수신하는 ULONG 형식 변수에 대한 포인터입니다. 대상 레코드의 데이터 버퍼 길이입니다.
[out] peRecordType
다음 값 중 하나를 수신하는 CLFS_RECORD_TYPE 형식의 변수에 대한 포인터입니다.
값 | 의미 |
---|---|
ClfsDataRecord | 대상 레코드는 데이터 레코드입니다. |
ClfsRestartRecord | 대상 레코드는 다시 시작 레코드입니다. |
[out] plsnUndoNext
대상 레코드의 실행 취소 후 LSN을 수신하는 CLFS_LSN 구조체에 대한 포인터입니다.
[out] plsnPrevious
대상 레코드의 이전 LSN을 수신하는 CLFS_LSN 구조체에 대한 포인터입니다.
[out] ppvReadContext
불투명 읽기 컨텍스트에 대한 포인터를 수신하는 변수에 대한 포인터입니다. 클라이언트는 이 컨텍스트를 ClfsReadNextLogRecord 에 반복적으로 전달하여 나머지 레코드를 시퀀스로 읽습니다. 클라이언트가 시퀀스의 모든 레코드를 읽은 후 ClfsTerminateReadLog 를 호출하여 읽기 컨텍스트를 해제합니다.
반환 값
ClfsReadLogRecord 는 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h에 정의된 오류 코드 중 하나를 반환합니다.
설명
메모리 누수 방지를 위해 읽기 컨텍스트 사용을 마쳤을 때 ClfsTerminateReadLog 를 호출해야 합니다.
CLFS 개념 및 용어에 대한 설명은 공통 로그 파일 시스템을 참조하세요.
CLFS 스트림에서 레코드를 읽는 방법에 대한 자세한 내용은 CLFS Stream 데이터 레코드 읽기 및 CLFS Stream다시 시작 레코드 읽기를 참조하세요.
읽기 컨텍스트는 스레드로부터 안전하지 않습니다. 클라이언트는 읽기 컨텍스트에 대한 액세스를 직렬화해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2003 R2, Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | wdm.h(Wdm.h 포함) |
라이브러리 | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |