IVssBackupComponents::BackupComplete method (vsbackup.h)

The BackupComplete method causes VSS to generate a BackupComplete event, which signals writers that the backup process has completed.


HRESULT BackupComplete(
  [out] IVssAsync **ppAsync


[out] ppAsync

Doubly indirect pointer to an IVssAsync instance.

Return value

The following are the valid return codes for this method.

Value Meaning
Successfully returned a pointer to an instance of the IVssAsync interface. Refer to IVssAsync::QueryStatus for the valid values returned by the pHrResult parameter.
ppAsync does not point to a valid pointer; that is, it is NULL.
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.

An unexpected error occurred during communication with writers. The error code is logged in the error log file. For more information, see Event and Error Handling Under VSS.


When working in component mode (IVssBackupComponents::SetBackupState was called with a select components argument of TRUE), writers can determine the success or failure of the backup of any component explicitly included in the Backup Components Document components by using IVssComponent::GetBackupSucceeded. Therefore, a well-behaved backup application (requester) must call IVssBackupComponents::SetBackupSucceeded after each component has been processed and prior to calling BackupComplete.

Do not call this method if the call to IVssBackupComponents::DoSnapshotSet failed. For more information about how requesters use DoSnapshotSet, SetBackupSucceeded, and BackupComplete in a backup operation, see Overview of Pre-Backup Tasks and Overview of Actual Backup Of Files.

This operation is asynchronous. The caller can use the QueryStatus interface method in the returned IVssAsync interface to determine the status of the notification.

After calling BackupComplete, requesters must call GatherWriterStatus to cause the writer session to be set to a completed state.

Note  This is only necessary on Windows Server 2008 with Service Pack 2 (SP2) and earlier.
The backup application can choose to abort the backup at any time after the shadow copy is created by calling IVssAsync::Cancel.

The calling application is responsible for calling IUnknown::Release to release the resources held by the returned IVssAsync when it is no longer needed.


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