| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/ |
Upload File : |
<Schema name="VssTestWriterConfig"
xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<!-- Here we define all attributes that may be used across different elements of the document -->
<AttributeType name="filespec" dt:type="string">
<description>
File specification. Can include wildcard characters ? and *
</description>
</AttributeType>
<AttributeType name="caption" dt:type="string">
<description>
File caption
</description>
</AttributeType>
<AttributeType name="path" dt:type="string">
<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">
<description>
Is path specified recursive or limited to the directory that is specified.
</description>
</AttributeType>
<AttributeType name="alternatePath" dt:type="string">
<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">
<description>
Logical path for a Writer component. This logical name uses backslash
as separators to form a logical namespace hierarchy
</description>
</AttributeType>
<AttributeType name="componentName" dt:type="string">
<description>
Name used to identify a Writer component. May be qualified by a
logical path.
</description>
</AttributeType>
<AttributeType name="instanceName" dt:type="string">
<description>
This provides the writer with a unique instance id that persists
between backup and restore. This allows the backup application
to handle multiple writer instances at restore time.
</description>
</AttributeType>
<!-- Here we define all of the possible elements of the document -->
<ElementType name="TestWriter" content="eltOnly" model="closed">
<description>
Configuration information for the VSS Test Writer.
</description>
<AttributeType name="usage" dt:type="enumeration"
dt:values="USER_DATA
BOOTABLE_SYSTEM_STATE
SYSTEM_SERVICE
OTHER">
<description>
How the data associated with the writer is used.
</description>
</AttributeType>
<AttributeType name="timestamped" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports timestamped components or not.
</description>
</AttributeType>
<AttributeType name="supportsNewTarget" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports new target operations or not.
</description>
</AttributeType>
<AttributeType name="supportsRestoreWithMove" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports redirecting components at restore time.
</description>
</AttributeType>
<AttributeType name="supportsCopy" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports copy backups.
</description>
</AttributeType>
<AttributeType name="supportsDifferential" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports differential backups.
</description>
</AttributeType>
<AttributeType name="supportsIncremental" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports incremental backups.
</description>
</AttributeType>
<AttributeType name="supportsLog" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports Log backups.
</description>
</AttributeType>
<AttributeType name="supportsAuthRestore" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports authoritative restore.
</description>
</AttributeType>
<AttributeType name="supportsRollforward" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports rollforward restore.
</description>
</AttributeType>
<AttributeType name="supportsRestoreRename" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports component rename at restore time.
</description>
</AttributeType>
<AttributeType name="supportsParallelRestores" dt:type="enumeration"
dt:values="yes no">
<description>
Whether this writer supports multiple unsynchronized restore events.
</description>
</AttributeType>
<AttributeType name="verbosity" dt:type="enumeration"
dt:values="low medium high">
<description>
Whether verbose output is enabled.
low: Messages are not printed if files are not properly restored
medium: Most general messages are printed, including warnings if files are not restored
high: Extremely verbose output is enabled.
</description>
</AttributeType>
<AttributeType name="checkExcludes" dt:type="enumeration"
dt:values="yes no">
<description>
Whether to check that excluded files are not restored at restore time.
If restoring to a location that may contain files matching the exclude list,
set this to false to prevent spurious warnings.
</description>
</AttributeType>
<AttributeType name="checkIncludes" dt:type="enumeration"
dt:values="yes no">
<description>
Whether to check that included files are restored at restore time.
</description>
</AttributeType>
<AttributeType name="deleteFiles" dt:type="enumeration"
dt:values="yes no">
<description>
whether to delete files from original volume after snapshot is taken
</description>
</AttributeType>
<AttributeType name="deletePartialFiles" dt:type="enumeration"
dt:values="yes no">
<description>
whether to delete partial files from original volume after snapshot is taken
</description>
</AttributeType>
<AttributeType name="deleteDifferencedFiles" dt:type="enumeration"
dt:values="yes no">
<description>
whether to delete differenced files from original volume after snapshot is taken
</description>
</AttributeType>
<AttributeType name="majorVersion" dt:type="number" >
<description>
Major version number of the writer.
</description>
</AttributeType>
<AttributeType name="minorVersion" dt:type="number" >
<description>
Minor version number of the writer.
</description>
</AttributeType>
<attribute type="instanceName" required="no" />
<attribute type="usage" default="OTHER" />
<attribute type="timestamped" default="no" />
<attribute type="supportsNewTarget" default="yes" />
<attribute type="supportsRestoreWithMove" default="yes" />
<attribute type="supportsCopy" default = "no" />
<attribute type="supportsDifferential" default = "no" />
<attribute type="supportsIncremental" default = "no" />
<attribute type="supportsLog" default = "no" />
<attribute type="supportsAuthRestore" default = "no" />
<attribute type="supportsRollforward" default = "no" />
<attribute type="supportsRestoreRename" default = "no" />
<attribute type="supportsParallelRestores" default = "no" />
<attribute type="verbosity" default="medium" />
<attribute type="checkExcludes" default="yes" />
<attribute type="checkIncludes" default="yes" />
<attribute type="deleteFiles" default="no" />
<attribute type="deletePartialFiles" default="no" />
<attribute type="deleteDifferencedFiles" default="no" />
<attribute type="majorVersion" required="no" />
<attribute type="minorVersion" required="no" />
<element type="RestoreMethod" />
<group order="many">
<element type="ExcludeFile" minOccurs="0" maxOccurs="*" />
<element type="ExcludeFileFromSnapshot" minOccurs="0" maxOccurs="*" />
<element type="Component" minOccurs="0" maxOccurs="*" />
<element type="FailEvent" minOccurs="0" maxOccurs="*" />
<element type="DelayEvent" minOccurs="0" maxOccurs="*" />
<element type="NotifyOnStartEvent" minOccurs="0" maxOccurs="*" />
<element type="WaitForEvent" minOccurs="0" maxOccurs="*" />
</group>
</ElementType>
<ElementType name="RestoreMethod" content="eltOnly" model="closed">
<description>
How restore should be performed. Includes specification of how files
should be restored as well as special steps that should occur in order
to complete the restore.
</description>
<AttributeType name="method" dt:type="enumeration"
dt:values="RESTORE_IF_NONE_THERE
RESTORE_IF_CAN_BE_REPLACED
STOP_RESTART_SERVICE
REPLACE_AT_REBOOT
REPLACE_AT_REBOOT_IF_CANNOT_REPLACE
RESTORE_TO_ALTERNATE_LOCATION
CUSTOM
RESTORE_STOP_START_SERVICE">
<description>
RESTORE_IF_NONE_THERE: i.e., can restore data if it is not at the
location where it was backed up from. This essentially allows
data to be restored to a clean system
RESTORE_IF_CAN_BE_REPLACED: Restore data if all of the files can
be replaced in the orgiginal backup location. Fails if any of
the files are open. If an alternate location is provided, files
will be placed there if they cannot be restored to their original
location.
STOP_RESTART_SERVICE: stop service (service attribute must be
specified) before the restore. Restore files to original backup
location then restart service. Fails if any of the files are open
after the service is stopped.
REPLACE_AT_REBOOT: Restore files to a temporary location. Use
MoveFileEx to replace the files at reboot.
REPLACE_AT_REBOOT_IF_CANNOT_REPLACE: Similiar to REPLACE_AT_REBOOT
however files may be restored in place in they are not busy. All files
within a component must be either completely replaced in place or
completely replaced at reboot, so if one component file is busy, all files
in that component must be replaced at reboot.
RESTORE_TO_ALTERNATIVE_LOCATION: Restore files to an alternate
location. Typically writerRestore will indicate that the writer
will participate in the restore process
CUSTOM: Custom restore method. Requestor's should not handle this
case at all for this writer.
RESTORE_STOP_START_SERVICE: restore files to original backup location,
then restart the specified service.
</description>
</AttributeType>
<AttributeType name="service" dt:type="string">
<description>
Must be specified if method="STOP_RESTART_SERVICE";
indicates service prior to the restore.
Must be specified if method="RESTORE_START_STOP_SERVICE";
indicates service to be restarted after the restore is complete.
</description>
</AttributeType>
<AttributeType name="writerRestore" dt:type="enumeration"
dt:values="always never ifReplaceFails">
<description>
Whether writer should be invoked after files are restored to
disk. Options are always, never, and ifReplaceFails. The latter means
that the files will be restored to their original location. If one
or more of the files cannot be replaced, then the files will be
restored to an alternate location (must be specified via
ALTERNATE_LOCATION_MAPPING. After the files are restored, the writer
is invoked.
</description>
</AttributeType>
<AttributeType name="rebootRequired" dt:type="enumeration"
dt:values="yes no">
<description>
Should a reboot be performed after restoring the data for this
writer
</description>
</AttributeType>
<attribute type="method" required="yes" />
<attribute type="service" required="no" />
<attribute type="writerRestore" default="always" />
<attribute type="rebootRequired" default="no" />
<element type="AlternateLocationMapping" minOccurs="0" maxOccurs="*" />
</ElementType>
<ElementType name="Dependency" content="empty" model="closed">
<description>
A dependency from one component to another component in another writer.
</description>
<AttributeType name="writerId" dt:type="uuid" required="yes">
<description>
Id of writer that this component is dependent on.
</description>
</AttributeType>
<attribute type="writerId" required="yes" />
<attribute type="logicalPath" required="no" />
<attribute type="componentName" required="yes" />
</ElementType>
<ElementType name="ComponentFile" content="empty" model="closed">
<description>
Location of a file in a component. For database components, the alternatePath
attribute is ignored.
</description>
<AttributeType name="fullBackupRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs backing up during a full backup.
</description>
</AttributeType>
<AttributeType name="diffBackupRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs backing up during a differential backup.
</description>
</AttributeType>
<AttributeType name="incBackupRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs backing up during an incremental backup.
</description>
</AttributeType>
<AttributeType name="logBackupRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs backing up during a log backup.
</description>
</AttributeType>
<AttributeType name="fullSnapshotRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs to be copied off of a snapshot during a full backup.
</description>
</AttributeType>
<AttributeType name="diffSnapshotRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs to be copied off of a snapshot during a differential backup.
</description>
</AttributeType>
<AttributeType name="incSnapshotRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs to be copied off of a snapshot during an incremental backup.
</description>
</AttributeType>
<AttributeType name="logSnapshotRequired" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file needs to be copied off of a snapshot during a log backup.
</description>
</AttributeType>
<AttributeType name="createdDuringBackup" dt:type="enumeration"
dt:values="yes no" >
<description>
Whether this file is created during backup.
</description>
</AttributeType>
<AttributeType name="nonSnapshotFile" dt:type="string">
<description>
If the file is not being copied off of the snapshot volume, it is replaced by this file in PostSnapshot.
This ensures that the requestor does not back up the file off of the snapshot
</description>
</AttributeType>
<attribute type="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="recursive" required="yes" />
<attribute type="alternatePath" required="no" />
<attribute type="nonSnapshotFile" required="no" />
<attribute type="fullBackupRequired" default="yes" />
<attribute type="diffBackupRequired" default="yes" />
<attribute type="incBackupRequired" default="yes" />
<attribute type="logBackupRequired" default="yes" />
<attribute type="fullSnapshotRequired" default="yes" />
<attribute type="diffSnapshotRequired" default="yes" />
<attribute type="incSnapshotRequired" default="yes" />
<attribute type="logSnapshotRequired" default="yes" />
<attribute type="createdDuringBackup" default="no" />
</ElementType>
<ElementType name="ExcludeFile" content="empty" model="closed">
<description>
Location of a file that the writer should mark as excluded from backup.
</description>
<attribute type ="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="recursive" required="yes" />
</ElementType>
<ElementType name="ExcludeFileFromSnapshot" content="empty" model="closed">
<description>
Location of a file that the writer should mark as excluded from a snapshot.
</description>
<attribute type ="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="recursive" required="yes" />
</ElementType>
<ElementType name="DifferencedFile" content="empty" model="closed">
<description>
Differenced files that the writer will add during PostSnapshot
</description>
<AttributeType name="year" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="month" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="day" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="hour" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="minute" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<AttributeType name="second" dt:type="number" >
<description>
The time that indicates the point of the last backup.
</description>
</AttributeType>
<attribute type ="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="recursive" required="yes" />
<attribute type="year" default="0"/>
<attribute type="month" default="0" />
<attribute type="day" default="0" />
<attribute type="hour" default="0" />
<attribute type="minute" default="0" />
<attribute type="second" default="0" />
</ElementType>
<ElementType name="PartialFile" content="empty" model="closed">
<description>
Partial file specification that the writer will add during PostSnapshot
</description>
<AttributeType name="ranges" dt:type="string">
<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 32 bit integers (for this version
of the writer). 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>
<attribute type="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="ranges" required="no" />
</ElementType>
<ElementType name="Component" content="eltOnly" model="closed">
<description>
Description of a Writer component. Currently this can describe either a file-group
component or a database component.
</description>
<AttributeType name="componentType" dt:type="enumeration"
dt:values="database filegroup">
<description>
specified the type of a Writer component
</description>
</AttributeType>
<AttributeType name="selectable" dt:type="enumeration"
dt:values="yes no">
<description>
Is this component selectable for backup or is it always backed up.
If no, then the component is always backed up if any other components of
the application/service are backed up. If yes, then the
component may be selectively backed up.
</description>
</AttributeType>
<AttributeType name="selectableForRestore" dt:type="enumeration"
dt:values="yes no" >
<description>
Is this component selectable for restore
</description>
</AttributeType>
<AttributeType name="restoreTarget" dt:type="enumeration"
dt:values="VSS_RT_ORIGINAL_LOCATION
VSS_RT_ALTERNATE">
<description>
Allows the writer to override the restore method for this component in the PreRestore event.
VSS_RT_ORIGINAL_LOCATION: all files in this component should be restored to their original locations.
VSS_RT_ALTERNATE: all files in this component should be restored to the previously specified alternate location
</description>
</AttributeType>
<AttributeType name="autoRecover" dt:type="enumeration"
dt:values="backup appRollback never">
<description>
When auto recovery is required
</description>
</AttributeType>
<AttributeType name="errorCode" dt:type="bin.hex">
<description>
This is the error code the writer should set for the failed component. The value should be a hexadecimal number without a
0x prefix. If the errorCode attribute is not present, its value will be selected pseudorandomly.
</description>
</AttributeType>
<AttributeType name="caption" dt:type="string">
<description>
File caption
</description>
</AttributeType>
<attribute type="instanceName" required="no" />
<attribute type="componentType" required="yes" />
<attribute type="logicalPath" required="no" />
<attribute type="componentName" required="yes" />
<attribute type="selectable" default="yes" />
<attribute type="selectableForRestore" default="no" />
<attribute type="restoreTarget" required="no" />
<attribute type="autoRecover" default="never"/>
<attribute type="errorCode" required="no" />
<attribute type="caption" required="no" />
<group order="many">
<element type="ExtendedError" minOccurs="0" maxOccurs="1" />
<element type="ComponentFile" minOccurs="0" maxOccurs="*" />
<element type="DifferencedFile" minOccurs="0" maxOccurs="*" />
<element type="PartialFile" minOccurs="0" maxOccurs="*" />
<element type="Dependency" minOccurs="0" maxOccurs="*" />
</group>
</ElementType>
<ElementType name="FailEvent" content="eltOnly" model="closed">
<description>
Specifies an event that the Test Writer will fail.
</description>
<AttributeType name="errorCode" dt:type="bin.hex">
<description>
This is the error code the writer should set for the failed component. The value should be a hexadecimal number without a
0x prefix. If the errorCode attribute is not present, its value will be selected pseudorandomly.
</description>
</AttributeType>
<AttributeType name="writerEvent" dt:type="enumeration"
dt:values="Identify
PrepareForBackup
PrepareForSnapshot
Freeze
Thaw
PostSnapshot
Abort
BackupComplete
BackupShutdown
PreRestore
PostRestore">
<description>
Defines the list of events that a Writer can fail.
</description>
</AttributeType>
<AttributeType name="retryable" dt:type="enumeration"
dt:values="yes no">
<description>
Whether the failure should be retryable or not
</description>
</AttributeType>
<AttributeType name="partial" dt:type="enumeration"
dt:values="yes no">
<description>
Whether the failure should be partial or not
</description>
</AttributeType>
<AttributeType name="numFailures" dt:type="number">
<description>
If the failure is retryable, then this parameter indicates the number of times the writer should
fail the event.
</description>
</AttributeType>
<AttributeType name="failEveryNth" dt:type="number">
<description>
For parallel events, failEveryNth indicates to fail every nth operation that is hit until
numFailures runs out. That is, if failEveryNth is 1, all occurences of this event will fail
until numFailures is hit. If it is 2, every 2nd occurence of this event will fail.
</description>
</AttributeType>
<attribute type="writerEvent" required="yes" />
<attribute type="retryable" default="yes" />
<attribute type="partial" default="no" />
<attribute type="numFailures" default="1" />
<attribute type="errorCode" required="no" />
<element type="ExtendedError" minOccurs="0" maxOccurs="1" />
<attribute type="failEveryNth" default="1" />
</ElementType>
<ElementType name="DelayEvent" content="empty" model="closed">
<description>
Specifies an event that the Test Writer will cause to delay for a specified period.
</description>
<AttributeType name="writerEvent" dt:type="enumeration"
dt:values="Identify
PrepareForBackup
PrepareForSnapshot
Freeze
Thaw
PostSnapshot
Abort
BackupComplete
BackupShutdown
PreRestore
PostRestore">
<description>
Defines the list of events that the Test Writer can cause to delay.
</description>
</AttributeType>
<AttributeType name="delaySeconds" dt:type="number">
<description>
This parameter indicates the number of times the writer should delay the event.
</description>
</AttributeType>
<attribute type="writerEvent" required="yes" />
<attribute type="delaySeconds" default="5" />
</ElementType>
<ElementType name="NotifyOnStartEvent" content="empty" model="closed">
<description>
Use this element to specify signalling on entrance of writer methods
using CreateEvent() and SetEvent() Win32 API.
At the beginning of the given writer method, the event specified by
NotifyOnStartEventName will be opened using CreateEvent()
and signalled using SetEvent(). If the event does not already exist,
it will be created as a manual event. In this case, one must manually
call ResetEvent() to set the state back to unsignalled.
</description>
<AttributeType name="writerEvent" dt:type="enumeration"
dt:values="Identify
PrepareForBackup
PrepareForSnapshot
Freeze
Thaw
PostSnapshot
Abort
BackupComplete
BackupShutdown
PreRestore
PostRestore">
<description>
Defines the list of writer methods.
Use this attribute to specify the writer
method which should notify on start.
</description>
</AttributeType>
<AttributeType name="NotifyOnStartEventName" dt:type="string">
<description>
This parameter indicates the name of the event that will
be signalled at the start of the given writer method.
This is passed to CreateEvent().
</description>
</AttributeType>
<attribute type="writerEvent" required="yes"/>
<attribute type="NotifyOnStartEventName" required="yes" />
</ElementType>
<ElementType name="WaitForEvent" content="empty" model="closed">
<description>
Use this element to wait on an event before returning from writer methods
using CreateEvent() and WaitForSingleObject() Win32 API.
At the end of the given writer method, the event specified by
WaitForEventName will be opened with CreateEvent() and waited on
using WaitForSingleObject() with an infinite timeout.
If the event does not already exist, it will be created as
an automatic event with an unsignalled state. Use SetEvent()
to signal the event, thereby allowing the writer method to exit.
</description>
<AttributeType name="writerEvent" dt:type="enumeration"
dt:values="Identify
PrepareForBackup
PrepareForSnapshot
Freeze
Thaw
PostSnapshot
Abort
BackupComplete
BackupShutdown
PreRestore
PostRestore">
<description>
Defines the list of writer methods.
Use this attribute to specify the writer method
which should wait on an event before returning.
</description>
</AttributeType>
<AttributeType name="WaitForEventName" >
<description>
This parameter indicates the name of the event that will
be waited on before allowing the writer method to exit.
This is passed to CreateEvent().
</description>
</AttributeType>
<attribute type="writerEvent" required="yes"/>
<attribute type="WaitForEventName" required="yes" />
</ElementType>
<ElementType name="AlternateLocationMapping" content="empty" model="closed">
<description>
Mapping from a location that was backed up to a location to restore to.
</description>
<attribute type="path" required="yes" />
<attribute type="filespec" required="yes" />
<attribute type="recursive" default="no" />
<attribute type="alternatePath" required="yes" />
</ElementType>
<ElementType name="ExtendedError" content="empty" model="closed">
<description>
Extended error information used by the writer when an event is failed. When this element is present in the FailEvent element,
the specified errorCode and errorMessage values will be set by the writer using the SetWriterFailureEx method.
</description>
<AttributeType name="errorCode" dt:type="bin.hex">
<description>
This is the extended error code the writer should set for the failed event. The value should be a hexadecimal number without a
0x prefix. If the errorCode attribute is not present, its value will be selected pseudorandomly.
</description>
</AttributeType>
<AttributeType name="errorMessage" dt:type="string">
<description>
This is the extended error message the writer should set for the failed event. If the errorMessage attribute is not present, its value
will be set to NULL.
</description>
</AttributeType>
<attribute type="errorCode" required="no" />
<attribute type="errorMessage" required="no" />
</ElementType>
</Schema>