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
指定此函数行为的标志。
可以组合以下一个或多个值。
值 | 含义 |
---|---|
|
不分配任何标志。 |
|
使用封送处理区域中保留的空间追加当前记录。 |
[out, optional] pcbWritten
指向变量的指针,该变量接收操作完成时写入的字节数。
[out, optional] plsnNext
指向 CLFS_LSN 结构的指针,该结构指定写入的重启区域的 LSN。
[in, out, optional] pOverlapped
指向 OVERLAPPED 结构的指针。
如果未使用异步操作,此参数可以为 NULL 。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
以下列表标识了可能的错误代码:
注解
WriteLogRestartArea 会导致刷新所有当前缓冲日志记录和刷新日志元数据。
例如,如果客户端在创建的日志上调用 WriteLogRestartArea 以支持异步操作 (,如果在创建) 日志时将CreateLogFile 的 fFlagsAndAttributes 参数设置为FILE_FLAG_OVERLAPPED,则客户端必须提供指向 WriteLogRestartArea 的 pOverlapped 参数中的有效 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 |