CVssWriter::GetSnapshotDeviceName method

The GetSnapshotDeviceName method returns the name of the device that hosts the shadow copy of the specified volume or file share. This method allows writers to support auto-recover shadow copies, and can only be called during the processing of the OnPostSnapshot method.


HRESULT GetSnapshotDeviceName(
  [in]  LPCWSTR wszOriginalVolume,
  [out] LPCWSTR *ppwszSnapshotDevice


wszOriginalVolume [in]

Name of the original volume or the UNC path of the original file share that contains data used for the current shadow copy set. The name of the volume must be in one of the following formats and must include a trailing backslash (\):

  • The path of a mounted folder, for example, Y:\MountX\
  • A drive letter, for example, D:\
  • A volume GUID path of the form \\?\Volume{GUID}\ (where GUID identifies the volume)
  • A UNC path that specifies a remote file share, for example, \\Clusterx\Share1\
ppwszSnapshotDevice [out]

The address of a LPCWSTR that will receive a pointer to the device name of the shadow copy.

Return value

This method can return one of these values.


Successfully returned the shadow copy volume name.


One of the parameter values is not valid.


The call was not made during the PostSnapshot event.


The wszOriginalVolume parameter is not one of the volumes or file shares in the shadow copy set.



Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP and Windows Server 2003:  Remote file shares are not supported until Windows 8 and Windows Server 2012.

To get the name of the original volume for the wszOriginalVolume parameter, first call the CVssWriter::GetCurrentVolumeCount method to query the number of volumes in the shadow copy set. Then call the CVssWriter::GetCurrentVolumeArray method to enumerate the original names of the volumes in the shadow copy set.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008, Windows Server 2003 with SP1 [desktop apps only]


VsWriter.h (include Vss.h or VsWriter.h)