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