Метод IVssBackupComponents::GetWriterComponents (vsbackup.h)
Метод GetWriterComponents используется для возврата сведений о компонентах данного модуля записи, которые были сохранены в документе компонентов резервного копирования инициатора запроса.
Синтаксис
HRESULT GetWriterComponents(
[in] UINT iWriter,
[out] IVssWriterComponentsExt **ppWriter
);
Параметры
[in] iWriter
Индекс запрашиваемого модуля записи. Это число от 0 до n–1, где n — значение, возвращаемое IVssBackupComponents::GetWriterComponentsCount.
[out] ppWriter
Вдвойне косвенный указатель на объект интерфейса IVssWriterComponentsExt , который получит возвращенные сведения о компоненте.
Возвращаемое значение
Ниже приведены допустимые коды возврата для этого метода.
Значение | Значение |
---|---|
|
Успешно возвращен указатель на объект интерфейса IVssWriterComponentsExt . |
|
Одно из значений параметра недопустимо. |
|
У вызывающего объекта не хватает памяти или других системных ресурсов. |
|
Объект компонентов резервного копирования не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности. |
|
Указанная теневая копия не существует. |
|
Непредвиденная ошибка. Код ошибки записывается в файл журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в 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::AddComponent
IVssBackupComponents::GatherWriterMetadata
IVssBackupComponents::GetWriterComponentsCount
IVssBackupComponents::GetWriterMetadata
IVssBackupComponents::P reRestore