JetOSSnapshotPrepare 函数

适用于:Windows | Windows Server

JetOSSnapshotPrepare 函数

JetOSSnapshotPrepare 函数的作用是启动快照会话的准备工作。 快照会话是一段较短的时间间隔,在此期间,引擎不会向磁盘发出任何写入 IO,以便引擎可以参与卷快照会话(当由快照编写器驱动时)。

Windows XP:Windows XP 中引入了 JetOSSnapshotPrepare

    JET_ERR JET_API JetOSSnapshotPrepare(
      __out         JET_OSSNAPID* psnapId,
      __in          const JET_GRBIT grbit
    );

参数

psnapId

要启动的快照会话的标识符。

grbit

此调用的选项。 此参数可以是以下值的组合。

含义

0

常规快照。

JET_bitIncrementalSnapshot

仅会获取日志文件。

JET_bitCopySnapshot

不存在日志截断的副本快照(常规快照或增量快照)。

JET_bitContinueAfterThaw

快照会话在 JetOSSnapshotThaw 后发生,且需要 JetOSSnapshotEnd 函数调用。

JET_bitExplicitPrepare

默认不准备任何实例。

Windows 7:Windows 7 中引入了 JET_bitExplicitPrepare。

返回值

此函数使用以下返回代码之一返回 JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errInvalidParameter

快照 ID 指针为 NULL,或 grbit 参数无效。

JET_errOSSnapshotInvalidSequence

快照会话已在进行中,且该操作中的快照会话在任何给定时间不得超过一个。

如果此函数成功,快照会话将能够随时从 IO 冻结阶段启动。 将返回会话的标识符,且必须在对快照会话的后续调用中使用。

运行的引擎实例现在视为快照会话的一部分。

Windows Vista:若要指定不同的实例子集,可调用 JetOSSnapshotPrepareInstance

常规 API 序列调用为:JetOSSnapshotPrepare,(可选)后跟一个或多个对 JetOSSnapshotPrepareInstance 的调用,然后是 JetOSSnapshotFreeze。 冻结启动后,可以使用 JetOSSnapshotThaw 终止冻结。 准备之后可随时使用 JetOSSnapshotAbort 即刻终止快照会话。

如果在 JetOSSnapshotThaw 之后指定了 JET_bitContinueAfterThaw,快照会话将存续(尽管 I/O 会恢复)。 这会启用快照验证,在需要时会使用 JetOSSnapshotTruncateLog 启用日志截断,并需要调用 JetOSSnapshotEnd

如果此函数失败,引擎状态不会更改。

备注

将为快照的不同步骤生成事件日志条目。

要求

要求

客户端

需要 Windows Vista 或 Windows XP。

Server

需要 Windows Server 2008 或 Windows Server 2003。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要 ESENT.dll。

另请参阅

JET_ERR
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotEnd
JetOSSnapshotFreeze
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw
JetOSSnapshotTruncateLog