ClusterGetVolumeNameForVolumeMountPoint 函数 (resapi.h)

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

检索与指定群集共享卷关联的卷 的群集 GUID 路径,该路径 (CSV) 装入点 (驱动器号、卷 GUID 路径或装载的文件夹) 。

语法

BOOL ClusterGetVolumeNameForVolumeMountPoint(
  [in]  LPCWSTR lpszVolumeMountPoint,
  [out] LPWSTR  lpszVolumeName,
  [in]  DWORD   cchBufferLength
);

参数

[in] lpszVolumeMountPoint

指向包含装载文件夹路径 (的字符串的指针,例如“Y:\MountX”) 或驱动器号 (,例如“X:\”) 。 字符串必须以尾随反斜杠 (\) 结尾。

[out] lpszVolumeName

指向接收卷 GUID 路径的字符串的指针。 此路径的格式为“\?\Volume{GUID}”,其中 GUID 是标识卷的 GUID 。 如果卷有多个卷 GUID 路径,则仅返回装载管理器缓存中的第一个路径。 返回的字符串采用 IVssBackupComponents::AddToSnapshotSetIVssBackupComponents::IsVolumeSupported 所需的格式。

[in] cchBufferLength

输出缓冲区的长度(以 WCHAR 为单位)。 要容纳最大卷 GUID 路径的合理缓冲区大小为 51 个字符。

返回值

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

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 如果未在本地装载输入 CSV,则调用将失败,并出现 ERROR_CSV_VOLUME_NOT_LOCAL (5951) 错误。

注解

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

  • 输入:“C:\ClusterStorage\Volume31\”

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

  • 输入:“C:\ClusterStorage\Volume31\”

    输出:函数失败,并将最后一个错误设置为 ERROR_CSV_VOLUME_NOT_LOCAL (5951) 。

    注意 为输入指定的 CSV 卷未在本地装载直接 I/O。
     
  • 输入:“\\?\C:\ClusterStorage\Volume31\Filename.Ext”

    输出:函数失败,并将最后一个错误设置为 ERROR_INVALID_PARAMETER (87) 。

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

    输出:函数失败,并将最后一个错误设置为 ERROR_INVALID_NAME (123) 。

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

    输出:函数失败,并将最后一个错误设置为 ERROR_INVALID_NAME (123) 。

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

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

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

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

    注意 输出中的卷是 CSV,不同于作为输入一部分的系统卷。
     
  • 输入:“\\?\GLOBALROOT\Device\Harddisk0\Partition1\ClusterStorage\Volume31\”

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

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

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

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

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

要求

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

另请参阅

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

备份和还原功能

GetVolumeNameForVolumeMountPoint

IVssBackupComponents::AddToSnapshotSet

IVssBackupComponents::IsVolumeSupported