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


Метод CVssWriterEx::InitializeEx (vswriter.h)

Инициализирует объект CVssWriterEx и позволяет приложению записи взаимодействовать с VSS. В отличие от метода Initialize , метод InitializeEx позволяет вызывающей объекту указать сведения о версии модуля записи.

InitializeEx — это открытый метод, реализованный базовым классом CVssWriterEx .

Модули записи должны вызывать Initialize или InitializeEx, но не оба метода.

Синтаксис

HRESULT InitializeEx(
  [in] VSS_ID                     WriterId,
  [in] LPCWSTR                    wszWriterName,
  [in] DWORD                      dwMajorVersion,
  [in] DWORD                      dwMinorVersion,
  [in] VSS_USAGE_TYPE             ut,
  [in] VSS_SOURCE_TYPE            st,
  [in] VSS_APPLICATION_LEVEL      nLevel,
  [in] DWORD                      dwTimeoutFreeze,
  [in] VSS_ALTERNATE_WRITER_STATE aws,
  [in] bool                       bIOThrottlingOnly,
  [in] LPCWSTR                    wszWriterInstanceName
);

Параметры

[in] WriterId

Глобальный уникальный идентификатор (GUID) класса записи.

[in] wszWriterName

Строка расширенных символов, завершающаяся нулевым значением, которая содержит имя модуля записи. Эта строка не локализована.

[in] dwMajorVersion

Основная версия приложения записи. Дополнительные сведения см. в разделе «Примечания».

[in] dwMinorVersion

Дополнительный номер версии приложения записи. Дополнительные сведения см. в разделе «Примечания».

[in] ut

Значение перечисления VSS_USAGE_TYPE , указывающее, как данные, управляемые модулем записи, используются в хост-системе.

[in] st

Значение перечисления VSS_SOURCE_TYPE , указывающее тип данных, управляемых модулем записи.

[in] nLevel

Значение перечисления VSS_APPLICATION_LEVEL , указывающее уровень приложения, на котором модуль записи получает уведомление о событии Freeze .

Значение по умолчанию для этого параметра — VSS_APP_FRONT_END.

[in] dwTimeoutFreeze

Максимально допустимое время (в миллисекундах) между получением модуля записи уведомления о событии Замораживания и получением соответствующего уведомления о событии Thaw от VSS. По истечении времени ожидания метод OnAbort модуля записи вызывается автоматически.

Значение по умолчанию для этого параметра — 60 000.

[in] aws

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

Значение по умолчанию для этого параметра — VSS_AWS_NO_ALTERNATE_WRITER. Вызывающий объект не должен переопределять это значение по умолчанию. Этот параметр зарезервирован для использования в будущем.

[in] bIOThrottlingOnly

Задайте для этого параметра значение true , если методы регулирования ввода-вывода включены, или значение false в противном случае.

Значение по умолчанию для этого параметра — false. Вызывающий объект не должен переопределять это значение по умолчанию. Этот параметр зарезервирован для использования в будущем.

[in] wszWriterInstanceName

Строка расширенных символов, завершающаяся null, которая содержит имя экземпляра модуля записи.

Значение по умолчанию для этого параметра — NULL. Если модуль записи содержит несколько экземпляров и требует событий восстановления, этот параметр является обязательным и не может иметь значение NULL. Дополнительные сведения см. в разделе "Примечания".

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

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

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

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

Комментарии

Метод InitializeEx идентичен методу Initialize , за исключением параметров dwMajorVersion и dwMinorVersion . Если модуль записи использует Initialize вместо InitializeEx, метод IVssExamineWriterMetadataEx2::GetVersion будет сообщать о версии модуля записи как 0,0 (основная версия = 0, вспомощая версия = 0).

Параметры dwMajorVersion и dwMinorVersion используются для указания основного и дополнительного номеров версий модуля записи в соответствии со следующими соглашениями VSS:

  • Если модуль записи изменился с момента выпуска Windows XP или является новым для Windows Vista, в нем следует указать номер версии 1.0 или выше.
  • Дополнительный номер версии модуля записи должен увеличиваться на единицу каждый раз, когда выпущенная версия модуля записи содержит незначительные изменения, влияющие на взаимодействие модуля записи с инициаторами запроса. Например, исправление спецификации файла в QFE модуля записи или пакете обновления оправдывает увеличение дополнительного номера версии. Однако изменение между бета-версиями или версиями-кандидатами модуля записи не оправдывает изменение номера дополнительной версии.
  • Основной номер версии модуля записи должен увеличиваться на единицу всякий раз, когда выпущенная версия модуля записи содержит значительное изменение. Например, если данные, резервные копии которых создаются с помощью новой версии модуля записи, не могут быть восстановлены с помощью предыдущей версии модуля записи, основной номер версии нового модуля записи следует увеличить.
  • Каждый раз, когда основной номер версии увеличивается, дополнительный номер версии следует сбросить до нуля.
Если модуль записи не указывает номер версии, VSS назначит номер версии по умолчанию 0,0.

VSS назначает уникальный идентификатор экземпляра модуля записи каждому экземпляру приложения записи. Если в системе одновременно присутствует несколько экземпляров (например, если в системе запущено несколько серверов SQL), каждый модуль записи однозначно определяется сочетанием идентификатора класса записи и идентификатора экземпляра модуля записи.

Параметр wszWriterInstanceName позволяет модулю записи с несколькими экземплярами указать постоянное имя для каждого экземпляра модуля записи в виде удобочитаемой строки. Это имя должно быть уникальным для всех экземпляров модуля записи в системе. Если модуль записи имеет несколько экземпляров и требует событий восстановления, он должен указать для этого параметра строку, отличной от NULL . VSS использует имя экземпляра для правильного восстановления модулей записи с несколькими экземплярами.

Требования

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

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

CVssWriterEx

IVssExamineWriterMetadataEx2::GetVersion