ClusterGetVolumePathName 函数 (resapi.h)

[ClusterGetVolumePathName 可在“要求”部分指定的操作系统中使用。 它可能在后续版本中变更或不可用。 请改用 GetVolumePathName。]

检索装载指定路径的群集上的卷装入点。

语法

BOOL ClusterGetVolumePathName(
  [in]  LPCWSTR lpszFileName,
  [out] LPWSTR  lpszVolumePathName,
  [in]  DWORD   cchBufferLength
);

参数

[in] lpszFileName

指向输入路径字符串的指针。 绝对名称和相对文件和目录名称(例如“..”)在此路径中都是可接受的。

如果在没有卷限定符的情况下指定相对目录或文件名, ClusterGetVolumePathName 将返回当前卷的驱动器号。

如果此参数为空字符串“”,则函数失败,但最后一个错误设置为 ERROR_SUCCESS

[out] lpszVolumePathName

指向接收输入路径的卷装入点的字符串的指针。

[in] cchBufferLength

输出缓冲区的长度(以 WCHAR 为单位)。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

以下示例可能会有所帮助。 在这些示例中,“Filename.Ext”确实存在,但“Path\that\does\not\exist”不存在。

  • 输入:“C:\ClusterStorage\Volume31\Filename.Ext”

    输出:“C:\ClusterStorage\Volume31”

  • 输入:“\\?\C:\ClusterStorage\Volume31\Filename.Ext”

    输出:“\?\C:\ClusterStorage\Volume31”

  • 输入:“C:\ClusterStorage\Volume31\Path\that\does\not\exist”

    输出:“C:\ClusterStorage\Volume31”

  • 输入:“\\?\Volume{deadbeef-895e-4a1d-9d64-9b82fa068d76}\ClusterStorage\Volume31\Filename.Ext”

    输出:“\?\Volume{deadbeef-895e-4a1d-9d64-9b82fa068d76}\ClusterStorage\Volume31”

  • 输入:“\\?\GLOBALROOT\Device\Harddisk0\Partition1\ClusterStorage\Volume31\Filename.Ext”

    输出:“\?\GLOBALROOT\Device\Harddisk0\Partition1\ClusterStorage\Volume31”

  • 输入:“\\?\GLOBALROOT\Device\HarddiskVolume1\ClusterStorage\Volume31\Filename.Ext”

    输出:“\?\GLOBALROOT\Device\HarddiskVolume1\ClusterStorage\Volume31”

Windows Server 2008 R2: 包含 ClusterGetVolumePathName 函数的 ResApi.h 的初始版本使用基于 TCHAR 的数据类型,而不是基于 WCHAR 的数据类型。 在包含 ResApi.h 之前,必须设置 UNICODE 预处理器定义。
#define UNICODE 1
#include <ResApi.h>

必须从群集的节点调用 ClusterGetVolumePathName 函数。

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008 R2 Enterprise、Windows Server 2008 R2 Datacenter
目标平台 Windows
标头 resapi.h
Library ResUtils.Lib
DLL ResUtils.Dll

另请参阅

使用 VSS 备份和还原故障转移群集配置

备份和还原功能