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
-
hbc、 pszDatabaseLocationList 或 cdSize 无效。
-
ERROR_NOT_ENOUGH_MEMORY
-
发生内存分配失败。
注解
DsRestoreGetDatabaseLocations 函数可用于获取还原目录,而无需访问备份的数据。 为此,请使用 pvExpiryToken 参数的 NULL 调用 DsRestorePrepare。 这会导致 DsRestorePrepare 返回一个受限的上下文句柄,该句柄只能与 DsRestoreGetDatabaseLocations 函数一起使用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
标头 |
|
库 |
|
DLL |
|
Unicode 和 ANSI 名称 |
DsRestoreGetDatabaseLocationsW (Unicode) 和 DsRestoreGetDatabaseLocationsA (ANSI) |