Метод IVssBackupComponentsEx3::GetWriterStatusEx (vsbackup.h)

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

Синтаксис

HRESULT GetWriterStatusEx(
  [in]            UINT             iWriter,
  [out]           VSS_ID           *pidInstance,
  [out]           VSS_ID           *pidWriter,
  [out]           BSTR             *pbstrWriter,
  [out]           VSS_WRITER_STATE *pnStatus,
  [out]           HRESULT          *phrFailureWriter,
  [out, optional] HRESULT          *phrApplication,
  [out, optional] BSTR             *pbstrApplicationMessage
);

Параметры

[in] iWriter

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

[out] pidInstance

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

[out] pidWriter

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

[out] pbstrWriter

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

[out] pnStatus

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

[out] phrFailureWriter

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

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

Значение Значение
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
Состояние записи недоступно для одного или нескольких модулей записи. Модуль записи может достичь максимального числа доступных сеансов резервного копирования и восстановления.
VSS_E_WRITERERROR_PARTIAL_FAILURE
Модуль записи сообщает об одной или нескольких ошибках на уровне компонентов. Чтобы получить ошибки, инициатор запроса должен использовать метод IVssComponentEx2::GetFailure .

[out, optional] phrApplication

Адрес переменной, выделенной вызывающим объектом, которая получает код возврата, переданный модулем записи для параметра hrApplication метода CVssWriterEx2::SetWriterFailureEx . Этот параметр является необязательным и может иметь значение NULL.

[out, optional] pbstrApplicationMessage

Адрес переменной, получающей сообщение о сбое приложения, переданное модулем записи для параметра wszApplicationMessage метода SetWriterFailureEx . Этот параметр является необязательным и может иметь значение NULL.

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

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

Значение Значение
S_OK
0x00000000L
Успешно возвращено состояние указанного модуля записи. Обратите внимание, что значение параметра phrFailureWriter должно быть проверено, чтобы убедиться, что модуль записи успешно выполнен. Коды ошибок модуля записи могут находиться в списке VsWriter.h, а также в разделе Ошибки и вето модуля записи.
E_INVALIDARG
0x80070057L
Параметр pnStatus, pidWriter, pbstrWriter или pidInstance имеет значение NULL.
E_OUTOFMEMORY
0x8007000EL
У вызывающего объекта не хватает памяти или других системных ресурсов.
VSS_E_BAD_STATE
0x80042301L
Объект компонентов резервного копирования не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности.
VSS_E_OBJECT_NOT_FOUND
0x80042308L
Параметр iWriter указывает несуществующий модуль записи.

Комментарии

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

Если этот метод возвращает VSS_E_WRITERERROR_PARTIAL_FAILURE, инициатор запроса должен использовать метод IVssComponentEx2::GetFailure для получения ошибок на уровне компонентов.

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

Требования

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

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

CVssWriterEx2::SetWriterFailureEx

IVssBackupComponents::GetWriterStatus

IVssBackupComponentsEx3