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 值的指针。 调用其他目录服务备份函数(如 DsBackupOpenFile 和 DsBackupEnd)时,使用此句柄。
返回值
如果函数成功或错误代码,则返回S_OK。 以下列表列出了其他可能的错误代码。
-
ERROR_ACCESS_DENIED
-
调用方没有调用此函数的适当访问权限。 DsSetAuthIdentity 函数可用于设置用于备份和还原函数的凭据。
-
ERROR_INVALID_PARAMETER
-
szBackupServer 或 phbcBackupContext 无效。
-
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 |
标头 |
|
库 |
|
DLL |
|
Unicode 和 ANSI 名称 |
DsBackupPrepareW (Unicode) 和 DsBackupPrepareA (ANSI) |