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


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

Метод GetWriterComponents используется для возврата сведений о компонентах данного модуля записи, которые были сохранены в документе компонентов резервного копирования инициатора запроса.

Синтаксис

HRESULT GetWriterComponents(
  [in]  UINT                    iWriter,
  [out] IVssWriterComponentsExt **ppWriter
);

Параметры

[in] iWriter

Индекс запрашиваемого модуля записи. Это число от 0 до n–1, где n — значение, возвращаемое IVssBackupComponents::GetWriterComponentsCount.

[out] ppWriter

Вдвойне косвенный указатель на объект интерфейса IVssWriterComponentsExt , который получит возвращенные сведения о компоненте.

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

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

Значение Значение
S_OK
Успешно возвращен указатель на объект интерфейса IVssWriterComponentsExt .
E_INVALIDARG
Одно из значений параметра недопустимо.
E_OUTOFMEMORY
У вызывающего объекта не хватает памяти или других системных ресурсов.
VSS_E_BAD_STATE
Объект компонентов резервного копирования не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности.
VSS_E_OBJECT_NOT_FOUND
Указанная теневая копия не существует.
VSS_E_UNEXPECTED
Непредвиденная ошибка. Код ошибки записывается в файл журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.

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

Комментарии

Вызывающий объект этого метода должен вызвать IUnknown::Release по завершении доступа к сведениям о компоненте.

GetWriterComponents получает сведения о компоненте, хранящееся в документе Компонентов резервного копирования, путем более ранних вызовов IVssBackupComponents::AddComponent.

Сведения в компонентах, хранящихся в документе Компонентов резервного копирования, не являются статическими. Если модуль записи обновляет компонент во время восстановления, это изменение будет отражено в компоненте, полученном Командлетом GetWriterComponents. Это отличается от сведений о компонентах, найденных в объекте IVssWMComponent , возвращенном IVssExamineWriterMetadata::GetComponent. Эти сведения доступны только для чтения и поступают из документа метаданных модуля записи процесса записи.

Указатель интерфейса IVssWriterComponentsExt , возвращаемый в параметре pWriterComponents , не должен кэшироваться, так как следующие методы IVssBackupComponents приводят к тому, что указатель интерфейса, возвращаемый GetWriterComponents , становится недействительным:

IVssBackupComponents::P repareForBackupIVssBackupComponents::D oSnapshotSetIVssBackupComponents::BackupCompleteIVssBackupComponents::P :P reRestoreIVssBackupComponents::P ostRestore Если вы вызываете один из этих методов после получения указателя интерфейса IVssWriterComponentsExt путем вызова GetWriterComponents, вы не сможете повторно использовать этот указатель. потому что он больше недействителен. Вместо этого необходимо снова вызвать GetWriterComponents , чтобы получить новый указатель интерфейса IVssWriterComponentsExt .

Требования

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

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

IVssBackupComponents

IVssBackupComponents::AddComponent

IVssBackupComponents::GatherWriterMetadata

IVssBackupComponents::GetWriterComponentsCount

IVssBackupComponents::GetWriterMetadata

IVssBackupComponents::P reRestore

IVssExamineWriterMetadata

IVssExamineWriterMetadata::GetComponent

IVssWriterComponents

IVssWriterComponentsExt