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 스트림 데이터 레코드 읽기 CLFS 스트림 다시 시작 레코드를참조하세요.
읽기 컨텍스트는 스레드로부터 안전하지 않습니다. 클라이언트는 읽기 컨텍스트에 대한 액세스를 직렬화해야 합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2003 R2, Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | wdm.h(Wdm.h 포함) |
라이브러리 | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |