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
IVssCreateWriterMetadata::SetBackupSchema
IVssExamineWriterMetadata::GetBackupSchema