VSS_BACKUP_SCHEMA enumeration (vss.h)

The VSS_BACKUP_SCHEMA enumeration is used by a writer to indicate the types of backup operations it can participate in. The supported kinds of backup are expressed as a bit mask (or bitwise OR) of VSS_BACKUP_SCHEMA values.

Syntax

typedef enum _VSS_BACKUP_SCHEMA {
  VSS_BS_UNDEFINED = 0,
  VSS_BS_DIFFERENTIAL = 0x1,
  VSS_BS_INCREMENTAL = 0x2,
  VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x4,
  VSS_BS_LOG = 0x8,
  VSS_BS_COPY = 0x10,
  VSS_BS_TIMESTAMPED = 0x20,
  VSS_BS_LAST_MODIFY = 0x40,
  VSS_BS_LSN = 0x80,
  VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x100,
  VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x200,
  VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x400,
  VSS_BS_ROLLFORWARD_RESTORE = 0x1000,
  VSS_BS_RESTORE_RENAME = 0x2000,
  VSS_BS_AUTHORITATIVE_RESTORE = 0x4000,
  VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x8000
} VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA;

Constants

 
VSS_BS_UNDEFINED
Value: 0
The writer supports a simple full backup and restoration of entire files (as defined by a
VSS_BACKUP_TYPE value of
VSS_BT_FULL). This backup scheme can be used as the basis of an incremental or
differential backup. This is the default value.
VSS_BS_DIFFERENTIAL
Value: 0x1
The writer supports differential backups (corresponding to the
VSS_BACKUP_TYPE value
VSS_BT_DIFFERENTIAL). Files created or changed since the last full backup are saved.
Files are not marked as having been backed up.


This setting does not preclude mixing of incremental and differential backups.

This value is not supported for express writers.
VSS_BS_INCREMENTAL
Value: 0x2
The writer supports incremental backups (corresponding to the
VSS_BACKUP_TYPE value
VSS_BT_INCREMENTAL). Files created or changed since the last full or incremental
backup are saved. Files are marked as having been backed up.


This setting does not preclude mixing of incremental and differential backups.

This value is not supported for express writers.
VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL
Value: 0x4
The writer supports both differential and incremental backup schemas, but only exclusively: for example,
you cannot follow a differential backup with an incremental one. A writer cannot support this schema if it does
not support both incremental and differential schemas (VSS_BS_DIFFERENTIAL

VSS_BS_INCREMENTAL).

This value is not supported for express writers.
VSS_BS_LOG
Value: 0x8
The writer supports backups that involve only the log files it manages (corresponding to a
VSS_BACKUP_TYPE value of
VSS_BT_LOG). This schema requires a writer to have added at least one file to at
least one component using the
IVssCreateWriterMetadata::AddDataBaseLogFiles
method. Requesters retrieve log file information using the
IVssWMComponent::GetDatabaseLogFile
method.
VSS_BS_COPY
Value: 0x10
Similar to the default backup schema (VSS_BT_UNDEFINED), the writer supports
copy backup operations (corresponding to VSS_BT_COPY) where file access information
(such as information as to when a file was last backed up) will not be updated either in the writer's own state
information or in the file system information. This type of backup cannot be used as the basis of an incremental
or differential backup.
VSS_BS_TIMESTAMPED
Value: 0x20
A writer supports using the VSS time-stamp mechanism when evaluating if a file should be included in
differential or incremental operations (corresponding to VSS_BT_DIFFERENTIAL and
VSS_BT_INCREMENTAL, respectively) using the
IVssComponent::GetBackupStamp,
IVssComponent::GetPreviousBackupStamp,
IVssComponent::SetBackupStamp, and
IVssBackupComponents::SetPreviousBackupStamp
methods.


A writer cannot support this schema if it does not support either differential or incremental backup schemas
(VSS_BS_DIFFERENTIAL or VSS_BS_INCREMENTAL).

This value is not supported for express writers.
VSS_BS_LAST_MODIFY
Value: 0x40
When implementing incremental or differential backups with differenced files, a writer can provide last
modification time information for files (using
IVssComponent::AddDifferencedFilesByLastModifyTime).
A requester then can use
IVssComponent::GetDifferencedFile to
obtain candidate files and information about their last modification data. The requester can use this
information (along with any records about previous backup operations it maintains) to decide if a file should be
included in incremental and differential backups.


This scheme does not apply to partial file implementations of incremental and differential backup
operations.

A writer cannot support this schema if it does not support either incremental or differential backup schemas
(VSS_BS_DIFFERENTIAL or VSS_BS_INCREMENTAL).

This value is not supported for express writers.
VSS_BS_LSN
Value: 0x80
Reserved for system use.
VSS_BS_WRITER_SUPPORTS_NEW_TARGET
Value: 0x100
The writer supports a requester changing the target for file restoration using
IVssBackupComponents::AddNewTarget.
(See Non-Default Backup And Restore
Locations
for more information.)

This value is not supported for express writers.
VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE
Value: 0x200
The writer supports running multiple writer instances with the same class ID, and it supports a requester moving a component to a different writer instance at restore time using IVssBackupComponentsEx::SetSelectedForRestoreEx.


This value is not supported for express writers.

Windows Server 2003:  This value is not supported until Windows Server 2003 with SP1.
VSS_BS_INDEPENDENT_SYSTEM_STATE
Value: 0x400
The writer supports backing up data that is part of the system state, but that can also be backed up independently of the system state.

Windows Server 2003:  This value is not supported until Windows Vista.
VSS_BS_ROLLFORWARD_RESTORE
Value: 0x1000
The writer supports a requester setting a roll-forward restore point using IVssBackupComponentsEx2::SetRollForward.

This value is not supported for express writers.

Windows Server 2003:  This value is not supported until Windows Vista.
VSS_BS_RESTORE_RENAME
Value: 0x2000
The writer supports a requester setting a restore name using IVssBackupComponentsEx2::SetRestoreName.

This value is not supported for express writers.

Windows Server 2003:  This value is not supported until Windows Vista.
VSS_BS_AUTHORITATIVE_RESTORE
Value: 0x4000
The writer supports a requester setting authoritative restore using IVssBackupComponentsEx2::SetAuthoritativeRestore.

This value is not supported for express writers.

Windows Server 2003:  This value is not supported until Windows Vista.
VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES
Value: 0x8000
The writer supports multiple unsynchronized restore events.

This value is not supported for express writers.

Windows Vista and Windows Server 2003:  This value is not supported until Windows Server 2008.

Remarks

Writer set their backup schemas with calls to IVssCreateWriterMetadata::SetBackupSchema.

Requesters use IVssExamineWriterMetadata::GetBackupSchema to determine the backup schema that a writer supports.

For a specific kind of backup operation to be supported, the writer must support the corresponding schema, and the requester must set the corresponding backup type.

For example, to involve a writer in an incremental backup operation, the requester must set the backup type to VSS_BT_INCREMENTAL, and the writer should have a backup schema that includes VSS_BS_INCREMENTAL.

A writer that does not support the backup schema corresponding to a requester's backup type should treat the backup operation that is being performed as if it were a default (full) backup. If the desired backup type is not supported by the writer's backup schema, the requester can either perform a full backup for this writer or exclude the writer from the backup operation. A requester can exclude a writer by selecting none of the writer's components (see Working with Selectability and Logical Paths), or by disabling the writer (see IVssBackupComponents::DisableWriterClasses or IVssBackupComponents::DisableWriterInstances).

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header vss.h

See also

IVssBackupComponents::SetBackupState

IVssBackupComponentsEx2::SetAuthoritativeRestore

IVssBackupComponentsEx2::SetRestoreName

IVssBackupComponentsEx2::SetRollForward

IVssBackupComponentsEx::SetSelectedForRestoreEx

IVssComponent::AddDifferencedFilesByLastModifyTime

IVssComponent::AddPartialFile

IVssCreateWriterMetadata::SetBackupSchema

IVssExamineWriterMetadata::GetBackupSchema

Incremental and Differential Backups

VSS_COMPONENT_FLAGS

VSS_USAGE_TYPE