IVssBackupComponents::PreRestore method (vsbackup.h)

The PreRestore method will cause VSS to generate a PreRestore event, signaling writers to prepare for an upcoming restore operation.


HRESULT PreRestore(
  [out] IVssAsync **ppAsync


[out] ppAsync

Doubly indirect pointer to an IVssAsync object containing status data for the signaled event.

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 error codes returned in the pHrResult parameter.
The ppAsync parameter 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.


The caller is responsible for releasing the IVssAsync interface pointer.

Special consideration should be given to EFI systems when the requester has selected the Automated System Recovery (ASR) writer for restore. If you are restoring to a disk that contains the EFI partition, and one of the following conditions exists, you must first clean the disk by calling the IVdsAdvancedDisk::Clean method:

  • You are restoring to an EFI system disk whose partitioning has changed since the last ASR backup.
  • You are restoring to a different physical drive than the one from which the backup was taken.
Failure to perform this disk-cleaning step may result in unexpected results during PreRestore.

For more information about the ASR writer, see In-Box VSS Writers.


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