JetGetLogInfoInstance2 函数

适用于: Windows |Windows Server

JetGetLogInfoInstance2 函数

JetGetLogInfoInstance2 函数在 JetBeginExternalBackup 发起的备份期间使用,用于查询应成为备份文件集一部分的数据库修补程序文件和事务日志文件的名称的实例。 随后可以使用 JetOpenFile 打开这些文件,并使用 JetReadFile 读取这些文件。

Windows XP:JetGetLogInfoInstance2 在 Windows XP 中引入。

    JET_ERR JET_API JetGetLogInfoInstance2(
      __in          JET_INSTANCE instance,
      __out_opt     tchar* szz,
      __in          unsigned long cbMax,
      __out_opt     unsigned long* pcbActual,
      __in_out_opt  JET_LOGINFO* pLogInfo
    );

参数

instance

要用于此调用的 实例。

对于 Windows 2000,接受此参数的 API 变体不可用,因为仅支持一个实例。 在本例中隐含使用此全局实例。

对于 Windows XP 及更高版本,仅当引擎处于旧模式 (Windows 2000 兼容模式时,才可调用不接受此参数的 API 变体) 其中仅支持一个实例。 否则,操作将失败并JET_errRunningInMultiInstanceMode。

szz

将接收以 null 结尾的字符串列表的输出缓冲区,这些字符串描述应属于备份文件集的数据库修补程序文件和事务日志文件集。

此缓冲区中返回的字符串列表的格式与注册表使用的多字符串格式相同。 每个以 null 结尾的字符串按顺序返回,后跟最终的 null 终止符。

cbMax

输出缓冲区的最大大小(以字节为单位)。

2013

接收在输出缓冲区中接收的实际字符串数据量。

pLogInfo

接收有关事务日志文件的结构化信息,这些文件应是备份文件集的一部分。

如果此参数不存在,则其值假定为 NULL。

返回值

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

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errBackupAbortByServer

操作失败,因为调用 JetStopBackup 中止了当前外部备份。 此错误仅由 Windows XP 及更高版本返回。

JET_errClientRequestToStopJetService

无法完成操作,因为与会话关联的实例上的所有活动都因调用 JetStopService 而停止。

JET_errInstanceUnavailable

无法完成操作,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 此错误仅由 Windows XP 及更高版本返回。

JET_errInvalidBackupSequence

备份操作失败,因为它被按顺序调用。 如果存在使用 JetOpenFile 为实例创建的任何未完成的文件句柄,JetGetLogInfo 将返回此错误。

JET_errInvalidParameter

提供的其中一个参数包含意外值,或者包含与另一个参数的值组合时没有意义的值。 当指定的实例句柄 (Windows XP 及更高版本) 无效时, JetGetLogInfo 可能会发生这种情况。

JET_errNoBackup

操作失败,因为没有正在进行的外部备份。

JET_errNotInitialized

无法完成操作,因为与会话关联的实例尚未初始化。

JET_errRestoreInProgress

无法完成该操作,因为正在对与会话关联的实例执行还原操作。

JET_errRunningInMultiInstanceMode

操作失败,因为尝试在旧模式下使用引擎, (Windows 2000 兼容模式) 其中仅支持一个实例,而实际上已存在多个实例。

JET_errTermInProgress

无法完成操作,因为正在关闭与会话关联的实例。

成功后,应属于备份文件集的数据库修补程序文件和事务日志文件集的请求信息将放置在提供的输出缓冲区中。 备份状态机将处于高级状态,以便不再允许备份数据库文件。 仅允许打开数据库修补程序文件和事务日志文件,以便在此时间点之后进行备份。

失败时,输出缓冲区的状态为未定义。 失败将导致取消实例的整个备份过程。

备注

请务必注意,如果输出缓冲区太小,无法接受应作为备份文件集一部分的文件的完整列表,则此 API 不会返回错误或警告。 应用程序应始终提供一个缓冲区来接收此列表的实际大小,并使用该信息来确定列表是否已被截断。

要求

要求

客户端

需要 Windows Vista 或 Windows XP。

服务器

需要 Windows Server 2008 或 Windows Server 2003。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

Unicode

实现为 JetGetLogInfoInstance2W (Unicode) 和 JetGetLogInfoInstance2A (ANSI) 。

另请参阅

JET_ERR
JET_INSTANCE
JET_LOGINFO
JetBeginExternalBackup
JetOpenFile
JetReadFile
JetStopBackup