writeLogRestartArea 函数 (clfsw32.h)

将新的客户端重启区域追加到日志,并选择性地将基本日志序列号 (LSN) 。

成功写入磁盘后,日志的最后一个 LSN 将更改为追加的重启记录的 LSN。 通常, WriteLogRestartArea 由定期保存已知良好状态的应用程序使用,重启区域包含现有日志记录链的 LSN。

语法

CLFSUSER_API BOOL WriteLogRestartArea(
  [in, out]           PVOID        pvMarshal,
  [in]                PVOID        pvRestartBuffer,
  [in]                ULONG        cbRestartBuffer,
  [in, optional]      PCLFS_LSN    plsnBase,
  [in]                ULONG        fFlags,
  [out, optional]     PULONG       pcbWritten,
  [out, optional]     PCLFS_LSN    plsnNext,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

参数

[in, out] pvMarshal

指向使用 CreateLogMarshallingArea 函数分配的封送处理上下文的指针。

[in] pvRestartBuffer

指向包含重启数据的缓冲区的指针。

[in] cbRestartBuffer

pvRestartBuffer 的大小(以字节为单位)。

[in, optional] plsnBase

指向 CLFS_LSN 结构的指针,该结构指定成功写入重启区域后日志的新基本 LSN。

此值不能超出活动日志的范围。 它必须至少为当前基准 LSN 的值,且不得大于对 ReserveAndAppendLog 的最新调用在 lastLSN 参数中返回的 LSN。 如果省略此可选参数,则基本 LSN 不会更改。

[in] fFlags

指定此函数行为的标志。

可以组合以下一个或多个值。

含义
CLFS_FLAG_NO_FLAGS
不分配任何标志。
CLFS_FLAG_USE_RESERVATION
使用封送处理区域中保留的空间追加当前记录。

[out, optional] pcbWritten

指向变量的指针,该变量接收操作完成时写入的字节数。

[out, optional] plsnNext

指向 CLFS_LSN 结构的指针,该结构指定写入的重启区域的 LSN。

[in, out, optional] pOverlapped

指向 OVERLAPPED 结构的指针。

如果未使用异步操作,此参数可以为 NULL

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

以下列表标识了可能的错误代码:

注解

WriteLogRestartArea 会导致刷新所有当前缓冲日志记录和刷新日志元数据。

例如,如果客户端在创建的日志上调用 WriteLogRestartArea 以支持异步操作 (,如果在创建) 日志时将CreateLogFilefFlagsAndAttributes 参数设置为FILE_FLAG_OVERLAPPED,则客户端必须提供指向 WriteLogRestartAreapOverlapped 参数中的有效 OVERLAPPED 结构的指针。

然后,如果 WriteLogRestartArea 失败并 出现错误ERROR_IO_PENDING,则会将指向有效读取上下文的指针放置在 ppvReadContext 参数指向的变量中。

若要完成调用,客户端应使用 GetOverlappedResult 或其中一个同步 Wait 函数将其执行与重叠 I/O 操作的延迟完成同步。 有关详细信息,请参阅 同步和重叠输入和输出

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 R2 [仅限桌面应用]
目标平台 Windows
标头 clfsw32.h
Library Clfsw32.lib
DLL Clfsw32.dll

另请参阅

CLFS_LSN

常见日志文件系统函数

OVERLAPPED