IVssBackupComponents::SaveAsXML method (vsbackup.h)

The SaveAsXML method saves the Backup Components Document containing a requester's state information to a specified string. This XML document, which contains the Backup Components Document, should always be securely saved as part of a backup operation.


  [in] BSTR *pbstrXML


[in] pbstrXML

Pointer to a string to be used to store the Backup Components Document containing a requester's state information.

Return value

The following are the valid return codes for this method.

Value Meaning
Successfully saved the XML document as the pbstrXML parameter value.
One of the parameter values is not valid.
The caller is out of memory or other system resources.
The backup components object is not initialized, this method has been called during a restore operation, or this method has not been called within the correct sequence.
Unexpected error. The error code is logged in the error log file. For more information, see Event and Error Handling Under VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  This value is not supported until Windows Server 2008 R2 and Windows 7. E_UNEXPECTED is used instead.


For a typical backup operation, SaveAsXML should not be called until after both writers and the requester are finished modifying the Backup Components Document.

Writers can continue to modify the Backup Components Document until their successful return from handling the PostSnapshot event (CVssWriter::OnPostSnapshot), or equivalently upon the completion of IVssBackupComponents::DoSnapshotSet.

Requesters will need to continue to modify the Backup Components Document as the backup progresses. In particular, a requester will store a component-by-component record of the success or failure of the backup through calls to the IVssBackupComponents::SetBackupSucceeded method.

Once the requester has finished modifying the Backup Components Document, the requester should use SaveAsXML to save a copy of the document to the backup media.

A Backup Components Document can be saved at earlier points in the life cycle of a backup operation—for instance, to support the generation of transportable shadow copies to be handled on remote machines. (See Importing Transportable Shadow Copied Volumes for more information.)

However, SaveAsXML should never be called prior to IVssBackupComponents::PrepareForBackup, because the Backup Components Document will not have been filled by the requester and the writers.


Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header vsbackup.h (include VsBackup.h, Vss.h, VsWriter.h)
Library VssApi.lib

See also