ReadPreviousLogRestartArea 函数 (clfsw32.h)
读取与读取上下文 pvReadContext 中指定的当前重启记录相关的上一个日志重启区域。 此读取上下文是以前通过调用 ReadLogRestartArea 创建的上下文。
语法
CLFSUSER_API BOOL ReadPreviousLogRestartArea(
[in] PVOID pvReadContext,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsnRestart,
[in, out, optional] LPOVERLAPPED pOverlapped
);
参数
[in] pvReadContext
指向 ReadLogRestartArea 返回的系统分配读取上下文的指针。
即使这些函数返回 ERROR_IO_PENDING,它们仍返回指向有效读取上下文的指针。 有关异步完成的信息,请参阅本主题的“备注”部分。
[out] ppvRestartBuffer
指向变量的指针,该变量接收指向重启数据的指针。
[out] pcbRestartBuffer
指向变量的指针,该变量接收 *ppvRestartBuffer 处的重启数据的大小(以字节为单位)。
[out] plsnRestart
指向 CLFS_LSN 结构的指针,该结构接收此函数返回的重启区域的日志序列号 (LSN) 。
[in, out, optional] pOverlapped
指向异步操作所需的 OVERLAPPED 结构的指针。
如果未使用异步操作,此参数可以为 NULL 。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
以下列表标识了可能的错误代码:
注解
如果 CreateLogMarshallingArea 指定的日志块大小不足以容纳完整的日志块,则返回错误消息ERROR_LOG_BLOCK_INCOMPLETE。
如果 ReadPreviousLogRestartArea 失败并出现 错误代码ERROR_IO_PENDING,则指向有效读取上下文的指针将放置在 ppvReadContext 参数指向的变量中。
若要完成日志记录复制,客户端应首先使用 GetOverlappedResult 或其中一个同步 等待函数将其执行与重叠 I/O 操作的延迟完成同步。 有关详细信息,请参阅 同步和重叠输入和输出。
ReadPreviousLogRestartArea 异步完成后,将从磁盘中读取请求的重启区域,但指向它的有效指针未放置在 *ppvRestartBuffer 中。
若要获取有效的指针,客户端必须再次调用 ReadPreviousLogRestartArea 。
CLFS 读取上下文不应一次传递到多个异步读取中,否则函数失败并出现ERROR_READ。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | clfsw32.h |
Library | Clfsw32.lib |
DLL | Clfsw32.dll |