mirror of https://github.com/UMSKT/xpmgr.git
216 lines
7.5 KiB
Plaintext
216 lines
7.5 KiB
Plaintext
/*++
|
|
|
|
Copyright (C) 2004 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
wsbapp.idl
|
|
|
|
Abstract:
|
|
|
|
This file contains the definition of the COM interfaces used by the Windows Server Backup (WSB)
|
|
engine to invoke application during backup/restore. These needs to be implemented by application
|
|
in an out-of-proc COM server.
|
|
|
|
--*/
|
|
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
// maximum number of volumes we'll get in any Interface that expects a list of volumes
|
|
#define MAX_VOLUMES 1000
|
|
|
|
|
|
// maximum number of components we will get in the restore API that expects a list of components
|
|
#define MAX_COMPONENTS 10000
|
|
|
|
//
|
|
// Forward declarations
|
|
//
|
|
|
|
interface IWsbApplicationAsync;
|
|
|
|
//
|
|
// Interface IWsbApplicationlicationBackupSupport contains methods for application specific backup tasks
|
|
//
|
|
|
|
[
|
|
object,
|
|
uuid(1EFF3510-4A27-46ad-B9E0-08332F0F4F6D),
|
|
helpstring("IWsbApplicationBackupSupport Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWsbApplicationBackupSupport : IUnknown
|
|
{
|
|
// CheckConsistency: Method to check consistency of components on the snapshot volumes. This method is
|
|
// called to check the consistency of the component after taking the snapshot of the volumes to be backed up.
|
|
//
|
|
// Arguments:
|
|
// IN wszWriterMetadata - writer metadata XML
|
|
// IN wszComponentName - component Name (as in writermetadata)
|
|
// IN wszComponentLogicalPath - component Logical Path (as in writermetadata)
|
|
// IN cVolumes - count of volumes (for volume map)
|
|
// IN rgwszSourceVolumePath - array of volume GUID paths (backward slash terminated)
|
|
// IN rgwszSnapshotVolumePath - array of snapshot volume paths corresponding to
|
|
// source volumes. The consistency check is done on these volumes
|
|
// OUT ppAsync - Pointer to the async interface for the client to query the operation.
|
|
// Can be NULL if consistency check is a no-op
|
|
//
|
|
// Return Values:
|
|
// S_OK - Consistency check on the component was successful
|
|
// S_FALSE - Consistency check is not required (No-op)
|
|
// WSBAPP_E_COMPONENT_CONSISTENCY_CHECK_FAILED - Consistency check operation failed
|
|
// hr - system error codes for operation failure
|
|
HRESULT
|
|
CheckConsistency(
|
|
[in, unique, string] LPWSTR wszWriterMetadata,
|
|
[in, unique, string] LPWSTR wszComponentName,
|
|
[in, unique, string] LPWSTR wszComponentLogicalPath,
|
|
[range(0, MAX_VOLUMES)][in] DWORD cVolumes,
|
|
[in, unique, string, size_is(cVolumes)] LPWSTR *rgwszSourceVolumePath,
|
|
[in, unique, string, size_is(cVolumes)] LPWSTR *rgwszSnapshotVolumePath,
|
|
[out] IWsbApplicationAsync **ppAsync
|
|
);
|
|
}
|
|
|
|
//
|
|
// Interface IWsbApplicationRestoreSupport contains methods for application specific restore tasks.
|
|
// The methods in this interface are called while restoring the application from backup.
|
|
//
|
|
|
|
[
|
|
object,
|
|
uuid(8D3BDB38-4EE8-4718-85F9-C7DBC4AB77AA),
|
|
helpstring("IWsbApplicationBackupSupport Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWsbApplicationRestoreSupport : IUnknown
|
|
{
|
|
// PreRestore: Method to perform Application specific prerestore tasks.
|
|
//
|
|
// Arguments:
|
|
// IN wszWriterMetadata - Writer metadata XML
|
|
// IN wszComponentName - component Name (as in writermetadata)
|
|
// IN wszComponentLogicalPath - component Logical Path (as in writermetadata)
|
|
// IN bNoRollForward - boolean to indicate previous point in time recovery is underway. No application
|
|
// rollforward will be done. The previous logs for the application will be deleted
|
|
// prior to restore
|
|
//
|
|
// Return Values:
|
|
// S_OK - PreRestore steps for the component were successful
|
|
// WSBAPP_E_COMPONENT_PRE_RESTORE_FAILED - Failure in preRestore operation
|
|
HRESULT
|
|
PreRestore(
|
|
[in, unique, string] LPWSTR wszWriterMetadata,
|
|
[in, unique, string] LPWSTR wszComponentName,
|
|
[in, unique, string] LPWSTR wszComponentLogicalPath,
|
|
[in] BOOLEAN bNoRollForward
|
|
);
|
|
|
|
// PostRestore: Method to perform Application specific postrestore tasks.
|
|
//
|
|
// Arguments:
|
|
// IN wszWriterMetadata - Writer metadata XML
|
|
// IN wszComponentName - component Name (as in writermetadata)
|
|
// IN wszComponentLogicalPath - component Logical Path (as in writermetadata)
|
|
// IN BOOLEAN bNoRollForward
|
|
//
|
|
// Return Values:
|
|
// S_OK - PostRestore steps for the component were successful
|
|
// WSBAPP_E_COMPONENT_POST_RESTORE_FAILED - Failure in post restore operation
|
|
HRESULT
|
|
PostRestore(
|
|
[in, unique, string] LPWSTR wszWriterMetadata,
|
|
[in, unique, string] LPWSTR wszComponentName,
|
|
[in, unique, string] LPWSTR wszComponentLogicalPath,
|
|
[in] BOOLEAN bNoRollForward
|
|
);
|
|
|
|
// OrderComponents: Method to get the order in which the Application components should be
|
|
//
|
|
// restored
|
|
//
|
|
// Arguments:
|
|
// IN cComponents - count of components
|
|
// IN rgComponentName - array of component Name (as in writermetadata)
|
|
// IN rgComponentLogicalPath - array of component logical paths (as in writermetadata)
|
|
// OUT prgComponentName - array of components name in restore order
|
|
// OUT prgComponentLogicalPath - array of component logical paths in restore order
|
|
//
|
|
// Return Values
|
|
//
|
|
// S_OK - Component restore order specified
|
|
// S_FALSE - No specific restore order required (prgComponentName and prgComponentLogicalPath) are NULL
|
|
// hr - Failure
|
|
|
|
HRESULT
|
|
OrderComponents(
|
|
[range(0, MAX_COMPONENTS)][in] DWORD cComponents,
|
|
[in, string, size_is(cComponents)] LPWSTR *rgComponentName,
|
|
[in, string, size_is(cComponents)] LPWSTR *rgComponentLogicalPaths,
|
|
[out, string, size_is(, cComponents)] LPWSTR **prgComponentName,
|
|
[out, string, size_is(, cComponents)] LPWSTR **prgComponentLogicalPath
|
|
);
|
|
|
|
// IsRollForwardSupported: Method to get the information that application supports RollForward recovery
|
|
//
|
|
// Arguments:
|
|
// IN pbRollForwardSupported - Info whether RollForward recovery is supported
|
|
//
|
|
// Return Values:
|
|
//
|
|
// S_OK
|
|
|
|
HRESULT
|
|
IsRollForwardSupported(
|
|
[out] BOOLEAN *pbRollForwardSupported
|
|
);
|
|
}
|
|
|
|
//
|
|
// Interface IWsbApplicationAsync is the interface that the client can call to
|
|
// query the progress of consistency check operation.
|
|
//
|
|
|
|
[
|
|
object,
|
|
uuid(0843F6F7-895C-44a6-B0C2-05A5022AA3A1),
|
|
helpstring("IWsbApplicationAsync Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWsbApplicationAsync : IUnknown
|
|
{
|
|
// QueryStatus: Method to get the status of the pending WsbApplication async operation
|
|
//
|
|
// Arguments:
|
|
// OUT phrResult - Status of current WsbApplication operation. The possible values are
|
|
// S_OK - Async operation has finished successfully
|
|
// WSBAPP_ASYNC_IN_PROGRESS - Async operation still in progress
|
|
// hr - Failure from the async operation
|
|
//
|
|
// Return Values:
|
|
//
|
|
// S_OK - Query status for the async operation was successful
|
|
// hr - Failure
|
|
//
|
|
|
|
HRESULT
|
|
QueryStatus(
|
|
[out] HRESULT *phrResult
|
|
);
|
|
|
|
// Abort: Method to abort the current async operation
|
|
//
|
|
// Arguments:
|
|
// None
|
|
//
|
|
// Return Values:
|
|
//
|
|
// S_OK
|
|
HRESULT
|
|
Abort();
|
|
}
|
|
|
|
|