Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

849 lines
30 KiB

<Schema name="VssComponentMetadata"
xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name="filespec" dt:type="string" required="yes">
<description>
File specification. Can include wildcard characters ? and *
</description>
</AttributeType>
<AttributeType name="path" dt:type="string" required="yes">
<description>
Path to a file. The path can include environment variables or
values extracted from registry keys.
</description>
</AttributeType>
<AttributeType name="recursive" dt:type="enumeration"
dt:values="yes no" default="no">
<description>
Is path specified recursive or limited to the directory that is specified.
</description>
</AttributeType>
<AttributeType name="alternatePath" dt:type="string" required="no">
<description>
Alternate path in which to find the file. Files in a file group may
have been copied to an alternative location by the writer. Backup should
pick up the files from the alternative location instead of the original
location but should restore the files to their original location
</description>
</AttributeType>
<AttributeType name="logicalPath" dt:type="string" required="no">
<description>
Logical path for a database or file group. This logical name uses backslash
as separators to form a logical namespace hierarchy
</description>
</AttributeType>
<AttributeType name="componentName" dt:type="string" required="yes">
<description>
Name used to identify a database or file group. May be qualified by a
logical path.
</description>
</AttributeType>
<AttributeType name="version" dt:type="enumeration" dt:values="1.0 1.1 1.2 1.3" required="yes">
<description>
Version of a specific document
</description>
</AttributeType>
<AttributeType name="writerId" dt:type="uuid" required="yes">
<description>
Unique id to identify the writer. Note that this identifies the
writer class rather than a specific instance of the writer.
</description>
</AttributeType>
<AttributeType name="instanceId" dt:type="uuid" required="no">
<description>
Unique id identifying the instance of a writer during backup. It
has no meaning during restore.
</description>
</AttributeType>
<ElementType name="BACKUP_COMPONENTS" content="eltOnly" model="closed" order="many">
<description>
Components that are backed up or restored.
Used to communicate between the writer and the backup application during
backup and restore.
</description>
<AttributeType name="selectComponents" dt:type="enumeration"
dt:values="yes no" default="no">
<description>
Does the backup application select individual components or
does it backup entire volumes
</description>
</AttributeType>
<AttributeType name="bootableSystemStateBackup" dt:type="enumeration"
dt:values = "yes no" default="no" >
<description>
Is backup saving the bootable state of the system.
</description>
</AttributeType>
<AttributeType name="backupType" dt:type="enumeration"
dt:values="full differential incremental log copy other"
default="full">
<description>
Type of backup being performed.
</description>
</AttributeType>
<AttributeType name="restoreType" dt:type="enumeration"
dt:values="byCopy import other"
default="byCopy">
<description>
Type of restore being performed.
</description>
</AttributeType>
<AttributeType name="partialFileSupport" dt:type="enumeration"
dt:values= "yes no" default="no" >
<description>
Indicates whether the requestor is capable of backing up and restoring
portions of files. If no, then the writer should never generate
PARTIAL_FILE or DIRECTED_RESTORE elements.
Only entire files can be backed up or restored.
</description>
</AttributeType>
<attribute type="version" />
<attribute type="selectComponents" />
<attribute type="bootableSystemStateBackup" />
<attribute type="backupType" />
<attribute type="restoreType" />
<attribute type="partialFileSupport" />
<element type= "WRITER_COMPONENTS" />
<element type= "SNAPSHOT_SET_DESCRIPTION" minOccurs="0" maxOccurs="1" />
</ElementType>
<ElementType name="WRITER_COMPONENTS" content="eltOnly" model="closed"
order="many">
<description>
Components that are backed up and restored that are associated with a
specific writer instance
</description>
<attribute type="writerId" />
<attribute type="instanceId" />
<element type="COMPONENT" />
</ElementType>
<ElementType name="COMPONENT" content="eltOnly" model="open" order="many">
<AttributeType name="backupSucceeded" dt:type="enumeration"
dt:values="yes no" default="no">
<description>
Indication of whether the component was backed up successfully
or not. This should be set during the BackupComplete notification
</description>
</AttributeType>
<AttributeType name="componentType" dt:type="enumeration"
dt:values="database filegroup">
<description>
Indication of whether component is database or file group
</description>
</AttributeType>
<AttributeType name="backupStamp" dt:type="string" required="no">
<description>
This string attribute contains the identifier assigned to the
backup by the writer. The attribute is set by the writer either
during the PrepareBackup or PostSnapshot event.
</description>
</AttributeType>
<AttributeType name="previousBackupStamp" dt:type="string" required="no">
<description>
In the case of an incremental or differential backup, this identifies
the backup from which differences are compouted. This attribute is
set by the requestor prior to the PrepareBackup event.
</description>
</AttributeType>
<AttributeType name="selectedForRestore" dt:type="enumeration"
dt:values="yes no" default="no" >
<description>
This yes/no attribute is set by the request prior to calling
PreRestore and indicates whether the component is being restored
or not.
</description>
</AttributeType>
<AttributeType name="additionalRestores" dt:type="enumeration"
dt:values="yes no" default="no" >
<description>
This yes/no attribute is set by the requestor prior to calling
PreRestore and indicates whether additional restores of the
component will follow (i.e., ull restore followed by log restores
</description>
</AttributeType>
<AttributeType name="restoreTarget" dt:type="enumeration"
dt:values="original alternate directed"
default="original" >
<description>
This enumerated attribute is set by the writer during PreRestore
and indicates whether the files for the component should be restored
to their original location, alternate location (as expressed by
ALTERNATE_LOCATION_MAPPING elements in the metadata), new location
(as expressed by RESTORE_TARGET elements created by the writer) or
should be partially restored (as expressed by the DIRECTED_TARGET
element created by the writer.
</description>
</AttributeType>
<AttributeType name="preRestoreFailureMsg" dt:type="string" required="no">
<description>
This attirbute is set by the writer during the PreRestore event if
the preRestore operation failed for some reason. It gives a textual
description of why the preRestore failed.
</description>
</AttributeType>
<AttributeType name="filesRestored" dt:type="enumeration"
dt:values= "none all failed" default="all" >
<description>
This attribute is set by the requestor after restoring files
for the component (i.e., between the PreRestore and PostRestore
events). Yes indicates that the files were restored successfully;
no indicates that the files were not restored and the original files
are intact; failed indicates that the original files were partially
overwritten and are therefore corrupt. Note that the failed status
can only occur in the situation of a restore of a file where only
part of the data is restored (DIRECTED_RESTORE) or where only part
of a file is backed up and restored (e.g., as part of a differential
backup). In these cases a failed restore occurs if some of the data
to be restored is written to the file but not all. In this case,
the original copy of the file no long exists and the copy on tape is
not complete and therefore cannot be used to create a consistent
copy. The only option is to use a previous full backup to restore
the data. Note that the "failed" indication can be used to indicate
that some, but no all of the files of a component were restored. The
requestore is required to either restore all the files of a component
or none of the files. However, there are situations where this is
not possible, and the restoration of a component has failed, but
cannot be completely undone.
</description>
</AttributeType>
<AttributeType name="postRestoreFailureMsg" dt:type="string" required="no">
<description>
This string attribute is set by the writer during the PostRestore
event. It is a text message indicating why the restore failed.
</description>
</AttributeType>
<AttributeType name="backupOptions" dt:type="string" required="no">
<description>
This is a private string passed between the requestor and the writer
to control the backup of the component. It should be set by the
requestor prior to the PrepareBackup event.
</description>
</AttributeType>
<AttributeType name="restoreOptions" dt:type="string" required = "no">
<description>
This is a private string passsed between to requestor and the writer
to control the restore of a component. It should be set by the
requestor prior to the PreRestore event.
</description>
</AttributeType>
<attribute type="componentType" />
<attribute type="logicalPath" />
<attribute type="componentName" />
<attribute type="backupSucceeded" />
<attribute type="backupOptions" />
<attribute type="restoreOptions" />
<attribute type="backupStamp" />
<attribute type="previousBackupStamp" />
<attribute type="selectedForRestore" />
<attribute type="additionalRestores" />
<attribute type="restoreTarget" />
<attribute type="preRestoreFailureMsg" />
<attribute type="filesRestored" />
<attribute type="postRestoreFailureMsg" />
<element type="ALTERNATE_LOCATION_MAPPING" minOccurs="0" maxOccurs="*" />
<element type="BACKUP_METADATA" minOccurs="0" maxOccurs="1" />
<element type="RESTORE_METADATA" minOccurs="0" maxOccurs="1" />
<element type="RESTORE_TARGET" minOccurs="0" maxOccurs="*" />
<element type="DIRECTED_TARGET" minOccurs="0" maxOccurs="*" />
<element type="PARTIAL_FILE" minOccurs="0" maxOccurs="*" />
<element type="RESTORE_SUBCOMPONENT" minOccurs="0" maxOccurs="*" />
<element type="DIFFERENCED_FILE" minOccurs="0" maxOccurs="*" />
</ElementType>
<ElementType name="ALTERNATE_LOCATION_MAPPING" content="empty" model="closed">
<description>
Mapping from a location that was backed up to a location to restore to.
</description>
<attribute type="path" />
<attribute type="filespec" />
<attribute type="recursive" />
<attribute type="alternatePath" />
</ElementType>
<ElementType name="BACKUP_METADATA" content="empty" model="closed">
<description>
Default metadata element for backup. Content is a binary hex string.
Note that the writer can store whatever he wants in the component. This
is just a simple default mechanism.
</description>
<AttributeType name="metadata" dt:type="string" required="yes">
<description>
Metadata to be passed on restore
</description>
</AttributeType>
<attribute type="metadata" />
</ElementType>
<ElementType name="RESTORE_METADATA" content="empty" model="closed">
<description>
Default metadata element for passing information from the writer's
PreRestore event to the writer's PostRestore event. The data is
opaque to the requestor.
</description>
<AttributeType name="metadata" dt:type="string" required="yes">
<description>
Metadata to be passed from PreRestore to PostRestore.
</description>
</AttributeType>
<attribute type="metadata" />
</ElementType>
<ElementType name="RESTORE_TARGET" content="empty" model="closed">
<description>
This element in a COMPONENT should be supplied if the value of the
restoreTarget attribute of the COMPONENT is "new". It supplies a
mapping from a the original location of the file to the location where
the file should be restored. There may be multiple RESTORE_TARGET
elements within a component.
</description>
<attribute type="path" />
<attribute type="filespec" />
<attribute type="recursive" />
<attribute type="alternatePath" />
</ElementType>
<ElementType name="DIRECTED_TARGET" content="empty" model="closed">
<description>
This element in a COMPONENT should be should be supplied if the value
of the restoreTarget attribute of the COMPONENT is "directed". It
is intended to support partial restoration of files or potentially
how files should be reorganized upon restore. There may be multiple
DIRECTED_TARGET elements within a component.
</description>
<AttributeType name="targetPath" dt:type="string" required="no">
<description>
This is the target location of the file that is to be written
by the requestor. If this attribute is not specified then
the targetPath is assumed to be the same as the original path.
</description>
</AttributeType>
<AttributeType name="targetFilespec" dt:type="string" required="no">
<description>
This is the name of the file that is to be written
by the requestor. If this is not specified then the target filename
is assumed to be the same as the original file name. Note that if
both the targetPath and targetFilespec are not specified then the
original file is overwritten.
</description>
</AttributeType>
<AttributeType name="sourceRanges" dt:type="string" required ="yes">
<description>
This is a string of the form (offset:cb ...) where each offset
is the byte offset to start reading data and cb is the length
of the data to be read (each is a 64 bit integer). The ranges
may not overlap and must be monotonically increasing.
</description>
</AttributeType>
<AttributeType name="targetRanges" dt:type="string" required="yes">
<description>
This is a string of the form (offset:cb ...) where each offset
is the byte offset to start wrting data and cb is the length of
the data to be written (each is a 64 bit integer). The ranges
may not overlap and must be monotonically increasing.
</description>
</AttributeType>
<attribute type="path" />
<attribute type="filespec" />
<attribute type="targetPath" />
<attribute type="targetFilespec" />
<attribute type="sourceRanges" />
<attribute type="targetRanges" />
</ElementType>
<ElementType name="PARTIAL_FILE" content="empty" model="closed">
<description>
This element in a COMPONENT is supplied by the writer during the
PostRestore event. It indicates that only a portion of the file
should be backed up. There may be multiple PARTIAL_FILE elements
within a single COMPONENT.
</description>
<AttributeType name="ranges" dt:type="string" required="no">
<description>
This range list has the form (offset:length ...) where offset is
the byte offset in the file to be backed up and length is the length
of the data to be backed up. Both are 64 bit integers. The ranges
must be monotonically increasing and must not overlap. If the
rangelist is not specified then the entire file should be backed up.
</description>
</AttributeType>
<AttributeType name="metadata" dt:type="string" required="no">
<description>
This is metadata used by the writer for restoring the partial
backup. It might for example, include the total size of the
file to be restored.
</description>
</AttributeType>
<attribute type="path" />
<attribute type="filespec" />
<attribute type="ranges" />
<attribute type="metadata" />
</ElementType>
<ElementType name="RESTORE_SUBCOMPONENT" content="empty" model="closed">
<description>
This element in a COMPONENT is added by the requestore prior to the
PreRestore event. It allows a subcomponent of a backed up component to
be restored.
</description>
<AttributeType name="repair" dt:type="enumeration"
dt:values="yes no" default="no">
<description>
This indicates that the purpose of the restore is to repair one or more files
of the component. The writer is responsible for identifying what
is to be restored using a DIRECTED_TARGET element.
</description>
</AttributeType>
<attribute type="logicalPath" />
<attribute type="componentName" />
<attribute type="repair" />
</ElementType>
<ElementType name="SNAPSHOT_SET_DESCRIPTION" content="eltOnly" model="closed">
<description>
This describes a snapshot, including the snapshot set id as well as
the volume information for the snapshotted volumes
</description>
<AttributeType name="snapshotSetId" dt:type="uuid" required="yes">
<description>
this is the unique identifier for the snapshot
</description>
</AttributeType>
<AttributeType name="context" dt:type="ui4" required="yes">
<description>
this is the context used to create the snapshot
</description>
</AttributeType>
<AttributeType name="metadata" dt:type="string" required="no">
<description>
this is private metadata about the snapshot set
</description>
</AttributeType>
<AttributeType name="description" dt:type="string" required="no">
<description>
this is a user description of the snapshot
</description>
</AttributeType>
<AttributeType name="originalCount" dt:type="ui4" required="yes">
<description>
this is the original count of snapshots in the snapshot set
</description>
</AttributeType>
<attribute type="snapshotSetId" />
<attribute type="context" />
<attribute type="description" />
<attribute type="metadata" />
<attribute type="originalCount" />
<element type="SNAPSHOT_DESCRIPTION" minOccurs="0" maxOccurs="*" />
</ElementType>
<ElementType name="SNAPSHOT_DESCRIPTION" content="eltOnly" model="closed">
<description>
This is the description of a snapshotted volume
</description>
<AttributeType name="snapshotId" dt:type="uuid" required="yes" >
<description>
This is the unique id of the snapshotted volume
</description>
</AttributeType>
<AttributeType name="originatingMachine" dt:type="string" required="yes" >
<description>
This is the machine where the original volume was snapshotted
</description>
</AttributeType>
<AttributeType name="serviceMachine" dt:type="string" required="yes" >
<description>
This is the Application Server machine (i.e. where the writers were notified)
</description>
</AttributeType>
<AttributeType name="originalVolumeName" dt:type="string" required ="yes">
<description>
This is the original name of the volume.
</description>
</AttributeType>
<AttributeType name="snapshotAttributes" dt:type="ui4" required="yes">
<description>
this describes the actual snapshot attributes (as defined in
VSS_VOLUME_SNAPSHOT_ATTRIBUTES)
</description>
</AttributeType>
<AttributeType name="deviceName" dt:type="string" required="no" >
<description>
This is the internal device name for the snapshotted volume. This
can be used if the snapshot is not exposed.
</description>
</AttributeType>
<AttributeType name="exposedName" dt:type="string" required="no" >
<description>
This is the exposed name of the snapshot volume
</description>
</AttributeType>
<AttributeType name="exposedPath" dt:type="string" required="no">
<description>
If only a subdirectory is exposed, this is the path to that
subdirectory.
</description>
</AttributeType>
<AttributeType name="providerId" dt:type="uuid" required="yes">
<description>
This is the provider that surfaced the snapshot
</description>
</AttributeType>
<AttributeType name="timestamp" dt:type="ui8" required="yes">
<description>
this is when the snapshot set was created.
</description>
</AttributeType>
<AttributeType name="isDynamicVolume" dt:type="enumeration"
dt:values="yes no" required="yes" >
<description>
Is the original volume for the snapshot dynamic or basic
</description>
</AttributeType>
<AttributeType name="mappedSnapshotId" dt:type="uuid" required="no">
<description>
This is the id of the mapped local snapshot in case that this
object stands for a remote virtual snapshot
</description>
</AttributeType>
<AttributeType name="mappedVolumeName" dt:type="string" required ="no">
<description>
This is the name of the volume that maps to the original share
in case that this object stands for a remote snapshot
</description>
</AttributeType>
<AttributeType name="mappedPathFromRoot" dt:type="string" required ="no">
<description>
This is the path of the original share from the volume root.
Relevant only if that this object stands for a remote snapshot
</description>
</AttributeType>
<attribute type="snapshotId" />
<attribute type="providerId" />
<attribute type="snapshotAttributes" />
<attribute type="originatingMachine" />
<attribute type="serviceMachine" />
<attribute type="originalVolumeName" />
<attribute type="timestamp" />
<attribute type="deviceName" />
<attribute type="exposedPath" />
<attribute type="exposedName" />
<attribute type="isDynamicVolume" />
<attribute type="mappedSnapshotId" />
<attribute type="mappedVolumeName" />
<attribute type="mappedPathFromRoot" />
<element type="LUN_MAPPING" minOccurs="0" maxOccurs="*"/>
</ElementType>
<ElementType name="LUN_MAPPING" content="eltOnly" model="closed">
<description>
Actual mapping of source lun to a destination lun
</description>
<AttributeType name="sourceDevice" dt:type="string" required="yes" >
<description>
This is the device name of the source device on the originating
machine. Note that this is only used during snapshot creation
</description>
</AttributeType>
<element type="SOURCE_LUN" minOccurs="1" maxOccurs="1" />
<element type="DESTINATION_LUN" minOccurs="1" maxOccurs="1" />
<element type="DISK_EXTENT" minOccurs="1" maxOccurs="*" />
<attribute type="sourceDevice" />
</ElementType>
<ElementType name="DISK_EXTENT" content="empty" model="closed">
<description>
A particular disk extent on a LUN
</description>
<AttributeType name="startingOffset" dt:type="ui8" required="yes">
<description>
starting offset of the extent in sectors
</description>
</AttributeType>
<AttributeType name="extentLength" dt:type="ui8" required="yes">
<description>
length of the extent in sectors
</description>
</AttributeType>
<attribute type="startingOffset" />
<attribute type="extentLength" />
</ElementType>
<ElementType name="SOURCE_LUN" content="eltOnly" model="closed">
<description>
The information for the lun on the originating volume
</description>
<element type="LUN_INFORMATION" />
</ElementType>
<ElementType name="DESTINATION_LUN" content="eltOnly" model="closed">
<description>
The information for the lun on the snapshotted volume
</description>
<element type="LUN_INFORMATION" />
</ElementType>
<ElementType name="INTERCONNECT_DESCRIPTION" content="empty" model="closed">
<description>
An interconnect address including the address type
</description>
<AttributeType name="interconnectAddressType" dt:type="enumeration"
dt:values="FCFS FCPH FCPH3 MAC Scsi" required="yes" >
<description>
interconnect address type. Describes type of the interconnect
address stored in the interconnectAddress attribute
</description>
</AttributeType>
<AttributeType name="port" dt:type="string" required="no">
<description>
Port through which the interconnect address is referred to. Note
that the same device may have different interconnect addresses through
different ports.
</description>
</AttributeType>
<AttributeType name="interconnectAddress" dt:type="string" required="yes">
<description>
World Wide name or other interconnect address of the device
</description>
</AttributeType>
<attribute type="interconnectAddressType" />
<attribute type="port" />
<attribute type="interconnectAddress" />
</ElementType>
<ElementType name="LUN_INFORMATION" content="eltOnly" model="closed">
<description>
enough of the location and name of the lun to transport it. TBD
</description>
<AttributeType name="busType" dt:type="enumeration"
dt:values="Scsi Atapi Ata 1394 Ssa Fibre Usb RAID"
required="yes" >
<description>
Type of bus that the LUN is attached to
</description>
</AttributeType>
<AttributeType name="deviceType" dt:type="ui1" required="yes" >
<description>
SCSI-2 device type
</description>
</AttributeType>
<AttributeType name="deviceTypeModifier" dt:type="ui1" required="yes">
<description>
SCSI-2 device type modifier (if any) - this may be 0
</description>
</AttributeType>
<AttributeType name="commandQueueing" dt:type="enumeration"
dt:values="yes no" default="no" >
<description>
Flag indicating whether the device can support mulitple outstanding
commands. The actual synchronization in this case is the
responsibility of the port driver.
</description>
</AttributeType>
<AttributeType name="vendorId" dt:type="string" required="no" >
<description>
Optional string identifying the vendor
</description>
</AttributeType>
<AttributeType name="productId" dt:type="string" required="no" >
<description>
Optional string identifying the product
</description>
</AttributeType>
<AttributeType name="productRevision" dt:type="string" required="no" >
<description>
Optional product revision information
</description>
</AttributeType>
<AttributeType name="serialNumber" dt:type="string" required="no" >
<description>
Optional serial number of the device
</description>
</AttributeType>
<AttributeType name="diskSignature" dt:type="uuid" required="yes">
<description>
Disk signature or GUID. If a signature than all but the lower
32 bits of the GUID are 0.
</description>
</AttributeType>
<AttributeType name="deviceIdentification" dt:type="string" required="yes" >
<description>
UUENCODED binary for the device identification page as
defined by the STORAGE_DEVICE_ID_DESCRIPTOR structure. This contains
the vendor id, EUI-64 id, FC-PH name, and vendor specific data.
</description>
</AttributeType>
<element type="INTERCONNECT_DESCRIPTION" minOccurs="0" maxOccurs="*"/>
<attribute type="deviceType" />
<attribute type="deviceTypeModifier" />
<attribute type="commandQueueing" />
<attribute type="busType" />
<attribute type="vendorId" />
<attribute type="productId" />
<attribute type="productRevision" />
<attribute type="serialNumber" />
<attribute type="diskSignature" />
<attribute type="deviceIdentification" />
</ElementType>
<ElementType name="DIFFERENCED_FILE" content="empty" model="closed">
<description>
The writer used these elements to indicate differenced files.
</description>
<AttributeType name="lastModifyLSN" dt:type="string" required="no" >
<description>
The LSN that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="lastModifyTimeLow" dt:type="number" default="0" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="lastModifyTimeHigh" dt:type="number" default="0" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<attribute type="path" />
<attribute type="filespec" />
<attribute type="recursive" />
<attribute type="lastModifyLSN" />
<attribute type="lastModifyTimeLow" />
<attribute type="lastModifyTimeHigh" />
</ElementType>
</Schema>