Метод IVssComponent::GetDifferencedFile (vswriter.h)
Метод GetDifferencedFile возвращает сведения о наборе файлов (указанном файле или файлах) для участия в добавочной или разностной резервной копии или восстановлении в виде разностного файла, то есть резервное копирование и восстановление, связанные с ним, должны быть реализованы так, как если бы все файлы копировались на носитель резервных копий и с него (в отличие от использования частичных файлов).
Этот метод может вызываться инициатором запроса или модулем записи во время операций резервного копирования или восстановления.
Синтаксис
HRESULT GetDifferencedFile(
[in] UINT iDifferencedFile,
[out] BSTR *pbstrPath,
[out] BSTR *pbstrFilespec,
[out] BOOL *pbRecursive,
[out] BSTR *pbstrLsnString,
[out] FILETIME *pftLastModifyTime
);
Параметры
[in] iDifferencedFile
Номер индекса разностного файла, который требуется изучить. Значение этого параметра является целым числом от 0 до n–1 включительно, где n — общее количество разностных файлов, связанных с данным компонентом (и его подкомпонентов, если он определяет набор компонентов). Значение n возвращается IVssComponent::GetDifferencedFilesCount.
[out] pbstrPath
Адрес переменной, выделенной вызывающим объектом, которая получает строку, содержащую путь к разностным файлам.
Пользователям этого метода необходимо проверка, чтобы определить, заканчивается ли этот путь обратной косой чертой (\).
[out] pbstrFilespec
Адрес переменной, выделенной вызывающим объектом, которая получает строку, содержащую спецификацию файла разных файлов.
[out] pbRecursive
Адрес переменной, выделенной вызывающим объектом, которая получает логическое значение, указывающее, следует ли рекурсивно интерпретировать спецификацию файла для разностных файлов. Если задано значение TRUE, то во всей иерархии каталогов необходимо будет найти файлы, соответствующие спецификации файла pbstrFilespec , чтобы найти файлы, которые будут обрабатываться как разностные файлы во время добавочного или разностного резервного копирования. Если задано значение FALSE, поиск должен выполняться только в корневом каталоге.
[out] pbstrLsnString
Зарезервировано для последующего использования.
[out] pftLastModifyTime
Адрес переменной, выделенной вызывающим объектом, которая получает спецификацию модуля записи о времени последнего изменения файлов различий, выраженную в виде структуры FILETIME .
Возвращаемое значение
Ниже приведены допустимые коды возврата для этого метода.
Значение | Значение |
---|---|
|
Успешно возвращено значение атрибута. |
|
Одно из значений параметра недопустимо. |
|
У вызывающего объекта не хватает памяти или других системных ресурсов. |
|
Файл, соответствующий указанному индексу, не найден. |
|
Недопустимый XML-документ. Дополнительные сведения см. в журнале событий. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS. |
Комментарии
GetDifferencedFile может вызываться инициатором запроса или модулем записи во время операций резервного копирования или восстановления.
Если вызов GetDifferencedFile выполнен успешно, вызывающий объект отвечает за освобождение строки, возвращаемой в параметрах pbstrPath и pbstrFilespec , путем вызова функции SysFreeString .
Поскольку средства записи могут указывать разностные файлы с помощью вызовов IVssComponent::AddDifferencedFilesByLastModifyTime в любое время до фактического резервного копирования файлов, Обычно при обработке события PostSnapshot (CVssWriter::OnPostSnapshot) во время резервного копирования GetDifferencedFile не вызывается до возвращения IVssBackupComponents::D oSnapshotSet успешно вернулся.
Метка времени, возвращаемая GetDifferencedFile , применяется ко всем файлам, которые соответствуют возвращенному пути (pbstrPath) и спецификации файла (pbstrFilespec).
Если значение метки времени, возвращаемое GetDifferencedFile (pftLastModifyTime), не равно нулю, инициатор запроса должен учитывать это значение независимо от собственных записей и сведений о файловой системе и использовать его, чтобы определить, следует ли включать разностный файл в разностную или добавочную резервную копию.
Если метка времени, возвращенная GetDifferencedFile , равна нулю, инициатор запроса может использовать сведения о файловой системе и собственные записи, чтобы определить, следует ли включать разностные файлы в разностную или добавочную резервную копию.
Разностные файлы могут иметь один из следующих вариантов:
- Члены текущего компонента или, если компонент определяет набор компонентов, члены его подкомпонентов, которые были добавлены в компонент с помощью IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles или IVssCreateWriterMetadata::AddDatabaseLogFiles
- Новые файлы, добавленные в компонент iVssComponent::AddDifferencedFilesByLastModifyTime
Когда GetDifferencedFile возвращает новый файл с отличием, путь к файлу (pbstrPath) должен совпадать или находиться под пути, уже существующего в компоненте, или одного из его подкомпонентов (если компонент определяет набор компонентов).
Кроме того, файлы, возвращаемые GetDifferencedFile , не должны управляться компонентом или модулем записи.
Если какой-либо из этих критериев нарушается, они представляют собой ошибку со стороны автора и должны сообщаться.
В интерфейсе IVssComponent нет метода, который позволяет изменять или добавлять альтернативное сопоставление расположения для новых файлов, возвращаемых методом GetDifferencedFilesByLastModifyTime. Если альтернативное сопоставление расположений соответствует новому файлу, будет использоваться это альтернативное расположение.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | vswriter.h (включая Vss.h, VsWriter.h) |
Библиотека | VssApi.lib |
См. также раздел
IVssComponent::AddDifferencedFilesByLastModifyTime