Создание резервного набора данных
Резервный набор данных — это список всех файлов для резервного копирования, их расположения и способов их резервного копирования.
Инициатор запроса должен использовать файлы, содержащиеся в теневых томах после успешного возврата IVssBackupComponents::D oSnapshotSet , чтобы создать полный список файлов для резервного копирования.
Кроме того, инициатор запроса должен иметь дело с возможностью того, что некоторые файлы имеют альтернативные пути , а некоторые файлы были исключены.
Алгоритм выбора файлов для резервного копирования должен выполняться в экземпляре модуля записи по экземпляру модуля записи по компоненту (как это будет происходить во время восстановления; см. раздел Создание набора восстановления) и может выполнять следующие действия:
- Определение томов, содержащих файлы модуля записи и соответствующие объекты устройства
- Использование сведений о наборе файлов (содержащихся в объектах IVssWMFiledesc , возвращаемых IVssExamineWriterMetadata::GetExcludeFile) для создания списка явно исключенных файлов с помощью FindFileFirst, FindFileFirstEx и FindNextFile.
- Итерации по всем компонентам модуля записи с помощью IVssExamineWriterMetadata::GetComponent. Если выбран доступный для выбора компонент, используйте логический путь для получения тех неизбираемых компонентов, которые с ним связаны в наборе компонентов. (См . раздел Работа с возможностью выбора и логическими путями.)
- Получение наборов файлов , содержащихся в каждом выбранном компоненте, с помощью интерфейса IVssWMComponent , соответствующего каждому компоненту, который он содержит.
- Создание списка файлов из спецификаций при необходимости с помощью FindFileFirst, FindFileFirstEx и FindNextFile.
- Проверка каждого файла в списке, созданном на основе сведений о компонентах, со списком исключенных файлов, созданных выше. Для этого следует использовать путь по умолчанию к файлу (возвращаемый IVssWMFiledesc::GetPath), а не альтернативным путем, возвращаемым IVssWMFiledesc::GetAlternateLocation. Если файл совпадает с исключенным списком, резервная копия не будет создана.
- Выбор фактического расположения для резервного копирования (с использованием альтернативного пути, если он был задан)
- На этом этапе доступен полный список файлов и их расположений, и может начаться резервное копирование.
После создания начального резервного набора данных для всех модулей записи, присутствующих в системе, инициатор запроса проверяет следующий раздел реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\FilesNotToBackup
Инициатор запроса использует подразделы в этом разделе следующим образом:
- Если модуль записи присутствует в системе и имеется подраздел, имя которого совпадает с именем модуля записи, этот подраздел необходимо игнорировать.
- Если модуль записи присутствовал в системе, но в настоящее время отсутствует в резервном наборе данных и имеется соответствующий подраздел, все файлы, указанные в данных подраздела, исключаются и должны быть удалены из резервного набора данных.
- Приложение резервного копирования добавляет файлы в данные подраздела, создавая значение MULTI_SZ, содержащее список спецификаций файлов, резервные копии для которые не должны создаваться. Каждая строка в MULTI_SZ значении должна содержать одну спецификацию файла.
- Спецификации файла могут содержать ? и * подстановочные знаки. Спецификацию можно сделать рекурсивной, добавив в конец параметр /s. Например, если указать "%TEMP%\* /s", все файлы в каталоге %TEMP% и всех его подкаталогах не будут архивироваться.