Поделиться через


Метод IVssBackupComponents::AddToSnapshotSet (vsbackup.h)

Метод AddToSnapshotSet добавляет исходный том или исходный удаленный файловый ресурс в набор теневого копирования.

Синтаксис

HRESULT AddToSnapshotSet(
  [in]  VSS_PWSZ pwszVolumeName,
  [in]  VSS_ID   ProviderId,
  [out] VSS_ID   *pidSnapshot
);

Параметры

[in] pwszVolumeName

Строка расширенных символов со значением NULL, содержащая имя тома или UNC-путь к удаленной общей папке для теневого копирования. Имя или UNC-путь должны иметь один из следующих форматов и включать обратную косую черту в конце (\):

  • Путь к подключенной папке, например Y:\MountX\
  • Буква диска, например D:\
  • Путь GUID тома в формате \\?\Volume{GUID}\ (где GUID идентифицирует том)
  • UNC-путь, указывающий удаленный файловый ресурс, например \\Clusterx\Share1\

[in] ProviderId

Используемый поставщик. GUID_NULL можно использовать, в этом случае будет использоваться поставщик по умолчанию.

[out] pidSnapshot

Возвращен идентификатор добавленной теневой копии.

Возвращаемое значение

Ниже приведены допустимые коды возврата для этого метода.

Значение Значение
S_OK
0x00000000L
В набор теневого копирования успешно добавлен том или удаленный файловый ресурс.
E_ACCESSDENIED
0x80070005L
Вызывающий объект не имеет достаточных прав на резервное копирование или не является администратором.
E_INVALIDARG
0x80070057L
Одно из значений параметра является недопустимым.
E_OUTOFMEMORY
0x8007000EL
Вызывающий объект не имеет памяти или других системных ресурсов.
VSS_E_BAD_STATE
0x80042301L
Объект компонента резервной копии не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности.
VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED
0x80042312L
В набор теневого копирования добавлено максимальное количество томов или удаленных общих папок. Указанный том или удаленный файловый ресурс не были добавлены в набор теневого копирования.
VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED
0x80042317L
Том или удаленный файловый ресурс был добавлен к максимальному количеству наборов теневых копий. Указанный том или удаленный файловый ресурс не были добавлены в набор теневого копирования.
VSS_E_NESTED_VOLUME_LIMIT
0x8004232CL
Указанный том слишком глубоко вложен для участия в операции VSS. Возможные причины этой ошибки:
  • Попытка создать теневой копии тома, который находится на виртуальном жестком диске, который содержится в другом виртуальном жестком диске.
  • Попытка создать теневое копирование тома VHD, если том, содержащий виртуальный жесткий диск, также находится в том же наборе теневого копирования.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот код возврата не поддерживается.
VSS_E_OBJECT_NOT_FOUND
0x80042308L
pwszVolumeName не соответствует существующему тому или удаленной общей папке.
VSS_E_PROVIDER_NOT_REGISTERED
0x80042304L
ProviderId не соответствует зарегистрированному поставщику.
VSS_E_PROVIDER_VETO
0x80042306L
Ожидаемая ошибка поставщика. Поставщик зарегистрировал ошибку в журнале событий. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.
VSS_E_SNAPSHOT_SET_IN_PROGRESS
0x80042316L
Еще одно создание теневой копии уже выполняется. Происходит при добавлении тома CSV в набор snapshot из нескольких узлов одновременно или при добавлении масштабируемого общего ресурса в snapshot набор из нескольких клиентских узлов SMB одновременно.
VSS_E_VOLUME_NOT_SUPPORTED
0x8004230CL
Значение параметра ProviderId равно GUID_NULL, и ни поставщик VSS не указывает, что он поддерживает указанный том или удаленный файловый ресурс.
VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER
0x8004230EL
Указанный поставщик не поддерживает том или удаленную общую папку.
VSS_E_UNEXPECTED
Непредвиденная ошибка. Код ошибки регистрируется в файле журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. вместо этого используется E_UNEXPECTED.

VSS_E_UNEXPECTED_PROVIDER_ERROR
0x8004230FL
Поставщик вернул непредвиденный код ошибки. Этот код ошибки возвращается только с помощью метода QueryStatus в интерфейсе IVssAsync , возвращенном в параметре ppAsync .

Комментарии

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP и Windows Server 2003: Удаленные общие папки не поддерживаются до Windows 8 и Windows Server 2012.

Если pwszVolumeName является UNC-путем к общей папке, часть имени сервера должна быть в формате имени узла или полного доменного имени. Имена общих ресурсов UNC с IP-адресами должны быть нормализованы путем вызова метода IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths перед их передачей в AddToSnapshotSet.

Максимальное число теневых копий томов в одном наборе теневых копий — 64.

Если значение ProviderId равно GUID_NULL, поставщик по умолчанию выбирается в соответствии со следующим алгоритмом:

  1. Если какой-либо поставщик оборудования поддерживает данный том или удаленный файловый ресурс, выбирается этот поставщик.
  2. Если поставщик оборудования отсутствует, если какой-либо поставщик программного обеспечения поддерживает данный том, он выбирается.
  3. Если поставщик оборудования или программного обеспечения отсутствует, выбирается поставщик системы. (Существует только один предустановленный системный поставщик, который должен поддерживать все неустранимые локальные тома.)
Этот метод не может быть вызван для виртуального жесткого диска (VHD), вложенного в другой виртуальный жесткий диск.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Виртуальные жесткие диски не поддерживаются.

Идентификатор теневого копирования, возвращаемый в параметре pidSnapshot , хранится в документе Компонентов резервного копирования. Однако нет метода для запроса этих сведений, и вызывающему объекту может потребоваться сохранить их, чтобы их можно было использовать во время восстановления.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header vsbackup.h (включая VsBackup.h, Vss.h, VsWriter.h)
Библиотека VssApi.lib

См. также раздел

IVssBackupComponents

IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths

_VSS_VOLUME_SNAPSHOT_ATTRIBUTES