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

指向 CLFS_LSN 结构的指针,该结构提供日志中目标记录的 LSN。

[in] peContextMode

CLFS_CONTEXT_MODE 枚举中的值,指定 ppvReadContext 中返回的读取上下文 (ClfsContextUndoNext、ClfsContextPrevious 或 ClfsContextForward) 的初始模式。

[out] ppvReadBuffer

指向变量的指针,该变量接收指向目标记录的数据缓冲区的指针。

[out] pcbReadBuffer

指向 ULONG 类型变量的指针,该变量接收 *ppvReadBuffer 指向的缓冲区的大小(以字节为单位)。 这是目标记录的数据缓冲区的长度。

[out] peRecordType

指向类型为 CLFS_RECORD_TYPE 的变量的指针,该变量接收以下值之一。

含义
ClfsDataRecord 目标记录是数据记录。
ClfsRestartRecord 目标记录是重启记录。

[out] plsnUndoNext

指向 CLFS_LSN 结构的指针,该结构接收目标记录的撤消下一个 LSN。

[out] plsnPrevious

指向 CLFS_LSN 结构的指针,该结构接收目标记录的上一个 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)
Library Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

另请参阅

ClfsReadNextLogRecord

ClfsTerminateReadLog