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 枚举中的一个值,该值指定 ppvReadContextForward中返回的读取上下文的初始模式(ClfsContextUndoNext、ClfsContextPrevious 或 ClfsContextForward)。

[out] ppvReadBuffer

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

[out] pcbReadBuffer

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

[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

另请参阅

ClfsReadNextLogRecord

ClfsTerminateReadLog