SisRestoredLink 函数

SisRestoredLink 函数返回指定还原的 SIS 链接指向的一个或多个公用存储文件的名称。

语法

BOOL SisRestoredLink(
  _In_  PVOID  sisRestoreStructure,
  _In_  PWCHAR restoredFileName,
  _In_  PVOID  reparseData,
  _In_  ULONG  reparseDataSize,
  _Out_ PULONG countOfCommonStoreFilesToRestore,
  _Out_ PWCHAR **commonStoreFilesToRestore
);

参数

sisRestoreStructure [in]

指向从 SisCreateRestoreStructure 返回的 SIS 还原结构的指针。

restoredFileName [in]

还原的 SIS 链接文件的完全限定文件名。

reparseData [in]

指向 SIS 重分析点内容的指针。 此重分析点包含描述还原的 SIS 链接的数据。 若要检索文件的重分析点数据,请使用 FSCTL_GET_REPARSE_POINT 控制代码。

reparseDataSize [in]

reparseData 指向的 SIS 重分析点内容的大小(以字节为单位)。

countOfCommonStoreFilesToRestore [out]

commonStoreFilesToRestore 参数中列出的文件数。

commonStoreFilesToRestore [out]

指向公用存储文件名数组的指针。 这些文件应以 与 SisCSFilesToBackupForLink 请求的通用存储文件相同的方式还原。

如果 countOfCommonStoreFilesToRestore 参数的值不为 0, 则 commonStoreFilesToRestore 参数的值将包含由于还原 SIS 链接而要还原的公用存储文件的名称。 如果值为 0,则表示已返回一次公用存储文件,或者卷上已存在这些文件。

返回值

如果成功完成,则此函数返回 TRUE ,否则返回 FALSE 。 调用 GetLastError 以获取有关调用失败原因的详细信息。

备注

应为每个已还原的 SIS 链接调用此函数。

对于每个还原操作,此函数最多返回每个公共存储文件一次;如果尝试还原看到相同公共存储文件的其他 SIS 链接,则不会导致返回该通用存储文件名。

此函数不会返回在备份操作期间调用 SisCSFilesToBackupForLink 时未返回的公用存储文件,前提是存储在介质上的 SIS 重新分析数据尚未损坏。

还原 SIS 链接时,还原操作应仅创建适当的稀疏文件,初始化任何分配的范围,然后完全按照在备份操作期间读取的数据写入 SIS 重新分析数据。 还原操作必须创建具有未分配范围的稀疏文件,而不是稀疏文件 (或非分析文件) 用零初始化。

请注意,如果磁盘上仍存在一个或多个通用存储文件,则此函数不一定标识与备份介质上的一组 SIS 链接对应的通用存储文件。 创建公共存储文件的数据流后,其内容永远不会更改,因此,如果磁盘上已存在该文件,则无需还原它。

通用存储文件名是全局唯一的,以确保还原操作的完整性,即使还原操作未在备份操作访问的启用了 SIS 的卷上发生也是如此。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Sisbkup.h

Sisbkup.lib
DLL
Sisbkup.dll

另请参阅

SisCreateRestoreStructure

SisCSFilesToBackupForLink