DsBackupPrepare 函数

[此函数可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 从 Windows Vista 开始,请改用卷影复制服务 (VSS) 。]

DsBackupPrepare 函数为联机备份准备指定服务器上的目录,并返回用于对其他备份函数的后续调用中使用的备份上下文句柄。

语法

HRESULT DsBackupPrepare(
  _In_  LPCTSTR szBackupServer,
  _In_  ULONG   grbit,
  _In_  ULONG   btBackupType,
  _Out_ PVOID   *ppvExpiryToken,
  _Out_ LPDWORD pcbExpiryTokenSize,
  _Out_ HBC     *phbc
);

parameters

szBackupServer [in]

指向包含要备份的服务器名称的以 null 结尾的字符串的指针。 前面的反斜杠是可选的。 服务器必须是从中调用此函数的同一台计算机。 服务器名称不能包含下划线 (_) 字符。 服务器名称的示例为“\\server1”。

grbit [in]

确定是否将备份日志文件。 此值应始终为 0,因为不支持增量备份。

btBackupType [in]

指定备份的类型。 这可以是以下值之一。

BACKUP_TYPE_FULL

指定完整备份。 备份完整的目录 (DIT、日志文件和更新文件) 。 备份所有数据并截断事务日志文件。 仅支持完整备份。

BACKUP_TYPE_LOGS_ONLY

不支持此值。 指定仅备份数据库日志,而不是数据库本身。 执行差异备份或增量备份时,通常使用此备份。

BACKUP_TYPE_INCREMENTAL

不支持此值。 DsBackupPrepare 返回 ERROR_INVALID_PARAMETER

ppvExpiryToken [out]

指向 PVOID 值的指针,该值接收指向与此备份关联的过期令牌的指针。 gpExpiryTokenSize 接收此数据的大小(以字节为单位)。 调用方必须使用备份保存此令牌的内容,因为尝试还原数据时必须将令牌传递给 DsRestorePrepare 。 存储令牌并不再需要令牌后,调用方应使用 DsBackupFree 释放分配的内存。

gpExpiryTokenSize [out]

指向接收 ppvExpiryToken 中令牌大小(以字节为单位)的 DWORD 值的指针。

phbc [out]

指向接收备份句柄的 HBC 值的指针。 调用其他目录服务备份函数(如 DsBackupOpenFileDsBackupEnd)时,将使用此句柄。

返回值

如果函数成功或错误代码,则返回 S_OK 。 以下列表列出了其他可能的错误代码。

ERROR_ACCESS_DENIED

调用方没有调用此函数的适当访问权限。 DsSetAuthIdentity 函数可用于设置用于备份和还原函数的凭据。

ERROR_INVALID_PARAMETER

szBackupServerphbcBackupContext 无效。

ERROR_NOT_ENOUGH_MEMORY

发生内存分配失败。

hrCouldNotConnect

找不到 szBackupServer 中的服务器,不是域控制器, 或者 szBackupServer 的格式不正确。 此值在 ntdsbmsg.h 中定义。

hrInvalidParam

ppvExpiryToken 和/或 gpExpiryTokenSize 无效。 此值在 Ntdsbmsg.h 中定义。

RPC_S_INVALID_BINDING

函数是远程调用的, 或者 szServerName 中的服务器不是域控制器。

备注

此函数要求调用方具有 SE_BACKUP_NAME 权限。 DsSetAuthIdentity 函数可用于更改调用此函数的安全上下文。

要求

要求 “值”
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
标头
Ntdsbcli.h

Ntdsbcli.lib
DLL
Ntdsbcli.dll
Unicode 和 ANSI 名称
DsBackupPrepareW (Unicode) 和 DsBackupPrepareA (ANSI)

另请参阅

DsRestorePrepare

DsBackupFree

DsBackupOpenFile

DsBackupEnd

DsSetAuthIdentity

备份 Active Directory 服务器

目录备份函数