DsRestoreGetDatabaseLocations 函数

[此函数可用于“要求”部分中指定的操作系统。 在后续版本中,它可能会被修改,也可能无法使用。 从 Windows Vista 开始,请改用卷影复制服务(VSS)。

DsRestoreGetDatabaseLocations 函数获取在还原操作期间应复制备份文件的位置。

语法

HRESULT DsRestoreGetDatabaseLocations(
  _In_  HBC     hbc,
  _Out_ LPWSTR  *pszDatabaseLocationList,
  _Out_ LPDWORD pcbSize
);

参数

hbc [in]

包含使用 DsRestorePrepare 函数获取的还原上下文句柄。

pszDatabaseLocationList [out]

指向字符串指针的指针,该指针接收数据库位置列表作为 UNC 路径。 此列表接收单个以 null 结尾的字符串的双 null 终止列表。

此缓冲区由 DsRestoreGetDatabaseLocations 函数分配,在调用 DsBackupFree 函数不再需要该缓冲区时必须释放该缓冲区。

每个文件名的第一个字符包含标识名称类型的 BFT 常量之一 DsRestoreGetDatabaseLocations 函数仅提供以下名称类型。

BFT_NTDS_DATABA标准版

应将 NTDS 数据库文件复制到此文件。 这是在执行备份时标识为BFT_NTDS_DATABA标准版的文件。

BFT_LOG_DIR

所有日志文件都复制到此目录。 执行备份时,日志文件被标识为 BFT_LOG

BFT_CHECKPOINT_DIR

所有修补程序文件都复制到此目录。 在执行备份时,修补程序文件被标识为 BFT_PATCH_FILE

输入 [out]

指向接收 pszDatabaseLocationList 缓冲区大小(以字节为单位)的 DWORD 值的指针。

返回值

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

ERROR_ACCESS_DENIED

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

ERROR_INVALID_PARAMETER

hbcpszDatabaseLocationListcdSize 无效。

ERROR_NOT_ENOUGH_MEMORY

发生内存分配失败。

注解

DsRestoreGetDatabaseLocations 函数可用于获取还原目录,而无需访问备份的数据。 为此,请使用 pvExpiryToken 参数的 NULL 调用 DsRestorePrepare 这会导致 DsRestorePrepare 返回一个受限的上下文句柄,该句柄只能与 DsRestoreGetDatabaseLocations 函数一起使用

要求

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

Ntdsbcli.lib
DLL
Ntdsbcli.dll
Unicode 和 ANSI 名称
DsRestoreGetDatabaseLocationsW (Unicode) 和 DsRestoreGetDatabaseLocationsA (ANSI)

另请参阅

DsRestorePrepare

DsBackupFree

目录备份函数

还原 Active Directory