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

추가 정보

ClfsReadNextLogRecord

ClfsTerminateReadLog