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
);

参数

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

发生内存分配失败。

hrCouldNot连接

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

hrInvalidParam

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

RPC_S_INVALID_BINDING

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

注解

此函数要求调用方具有标准版_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 服务器

目录备份函数