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


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

Метод GetWriterStatus возвращает состояние указанного модуля записи.

Синтаксис

HRESULT GetWriterStatus(
  [in]  UINT             iWriter,
  [out] VSS_ID           *pidInstance,
  [out] VSS_ID           *pidWriter,
  [out] BSTR             *pbstrWriter,
  [out] VSS_WRITER_STATE *pnStatus,
  [out] HRESULT          *phResultFailure
);

Параметры

[in] iWriter

Индекс модуля записи, метаданные которого необходимо извлечь. Значение этого параметра является целым числом от 0 до n–1 включительно, где n — общее количество модулей записи в текущей системе. Значение n возвращается IVssBackupComponents::GetWriterStatusCount.

[out] pidInstance

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

[out] pidWriter

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

[out] pbstrWriter

Адрес переменной, выделенной вызывающим объектом, которая получает строку, содержащую имя указанного модуля записи.

[out] pnStatus

Адрес переменной, выделенной вызывающим объектом, которая получает значение перечисления VSS_WRITER_STATE .

[out] phResultFailure

Адрес переменной, выделенной вызывающей стороны, которая получает код сбоя HRESULT, возвращенный модулем записи.

Ниже приведены поддерживаемые значения для pHrResultFailure.

Значение Значение
S_OK
Писатель был успешным.
VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT
Теневая копия содержит только подмножество томов, необходимых средству записи для правильного резервного копирования компонента приложения.
VSS_E_WRITERERROR_OUTOFRESOURCES
У модуля записи не хватает памяти или других системных ресурсов. Для обработки этого кода ошибки рекомендуется подождать десять минут, а затем повторить операцию до трех раз.
VSS_E_WRITERERROR_TIMEOUT
Операция записи завершилась сбоем из-за истечения времени ожидания между событиями Freeze и Thaw. Для обработки этого кода ошибки рекомендуется подождать десять минут, а затем повторить операцию до трех раз.
VSS_E_WRITERERROR_RETRYABLE
Сбой модуля записи из-за ошибки, которая, скорее всего, не произойдет, если был перезапущен весь процесс резервного копирования, восстановления или создания теневой копии. Для обработки этого кода ошибки рекомендуется подождать десять минут, а затем повторить операцию до трех раз.
VSS_E_WRITERERROR_NONRETRYABLE
Операция записи завершилась сбоем из-за ошибки, которая может повторяться при создании другой теневой копии. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.
VSS_E_WRITER_NOT_RESPONDING
Модуль записи не отвечает.
VSS_E_WRITER_STATUS_NOT_AVAILABLE
Состояние записи недоступно для одного или нескольких модулей записи. Модуль записи может достичь максимального числа доступных сеансов резервного копирования и восстановления.

Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

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

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

Значение Значение
S_OK
Успешно возвращено состояние указанного модуля записи. Обратите внимание, что значение параметра pHrWriterFailure должно быть проверено, чтобы убедиться, что модуль записи выполнен успешно. Коды ошибок модуля записи могут находиться в списке VsWriter.h, а также в разделе Ошибки и вето модуля записи.
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.

Комментарии

Инициатор запроса должен вызвать асинхронную операцию IVssBackupComponents::GatherWriterStatus и дождаться ее завершения перед вызовом GetWriterStatus.

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

Значения VSS_E_WRITERERROR_XXX, возвращаемые в параметре pHrResultFailure , создаются средствами записи. VSS_E_WRITER_NOT_RESPONDING и VSS_E_WRITER_STATUS_NOT_AVAILABLE создаются службой VSS.

Требования

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

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

IVssBackupComponents

IVssBackupComponents::GatherWriterStatus

IVssBackupComponents::GetWriterStatusCount