Метод 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. Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
Ниже приведены допустимые коды возврата для этого метода.
Значение | Значение |
---|---|
|
Объект записи успешно инициализирован. |
|
Не удалось инициализировать объект записи; инфраструктура модуля записи VSS была неактивна, так как Windows находилась в безопасном режиме или была настроена. |
|
Вызывающий объект не является администратором. |
|
Одно из значений параметра недопустимо. |
|
У вызывающего объекта не хватает памяти или других системных ресурсов. |
|
Непредвиденная ошибка. Код ошибки записывается в файл журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в 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 назначает уникальный идентификатор экземпляра модуля записи каждому экземпляру приложения записи. Если в системе одновременно присутствует несколько экземпляров (например, если в системе запущено несколько серверов SQL), каждый модуль записи однозначно определяется сочетанием идентификатора класса записи и идентификатора экземпляра модуля записи.
Параметр wszWriterInstanceName позволяет модулю записи с несколькими экземплярами указать постоянное имя для каждого экземпляра модуля записи в виде удобочитаемой строки. Это имя должно быть уникальным для всех экземпляров модуля записи в системе. Если модуль записи имеет несколько экземпляров и требует событий восстановления, он должен указать для этого параметра строку, отличной от NULL . VSS использует имя экземпляра для правильного восстановления модулей записи с несколькими экземплярами.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | vswriter.h (включая Vss.h, VsWriter.h) |
Библиотека | VssApi.lib |