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 |