Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
4.4 KiB

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
vs_idl.hxx
Abstract:
Includes the VSS IDLs
Author:
Adi Oltean [aoltean] 04/11/2001
Revision History:
Name Date Comments
aoltean 04/11/2001 Created
--*/
#ifndef __VSS_IDL_HXX__
#define __VSS_IDL_HXX__
#if _MSC_VER > 1000
#pragma once
#endif
#include <objbase.h>
#include "vss.h"
#include "vdslun.h"
#include "vscoordint.h"
#include "vsevent.h"
#include "vsprov.h"
#include "vsswprv.h"
#include "vsmgmt.h"
// Declaring the IVssSnapshotProvider
// This needs to be used only from VSS, as a wrapper around software and hardware providers
interface IVssSnapshotProvider: public IUnknown
{
// Internal methods
STDMETHOD(QueryInternalInterface)(
IN REFIID iid,
OUT void** pp
) PURE;
// IVssSoftwareSnapshotProvider
STDMETHOD(SetContext)(
IN LONG lContext
) PURE;
STDMETHOD(GetSnapshotProperties)(
IN VSS_ID SnapshotId,
OUT VSS_SNAPSHOT_PROP *pProp
) PURE;
STDMETHOD(Query)(
IN VSS_ID QueriedObjectId,
IN VSS_OBJECT_TYPE eQueriedObjectType,
IN VSS_OBJECT_TYPE eReturnedObjectsType,
OUT IVssEnumObject**ppEnum
) PURE;
STDMETHOD(DeleteSnapshots)(
IN VSS_ID SourceObjectId,
IN VSS_OBJECT_TYPE eSourceObjectType,
IN BOOL bForceDelete,
OUT LONG* plDeletedSnapshots,
OUT VSS_ID* pNondeletedSnapshotID
) PURE;
STDMETHOD(BeginPrepareSnapshot)(
IN VSS_ID SnapshotSetId,
IN VSS_ID SnapshotId,
IN VSS_PWSZ pwszVolumeName,
IN LONG lNewContext
) PURE;
STDMETHOD(IsVolumeSupported)(
IN VSS_PWSZ pwszVolumeName,
OUT BOOL * pbSupportedByThisProvider
) PURE;
STDMETHOD(IsVolumeSnapshotted)(
IN VSS_PWSZ pwszVolumeName,
OUT BOOL * pbSnapshotsPresent,
OUT LONG * plSnapshotCompatibility
) PURE;
STDMETHOD(SetSnapshotProperty)(
IN VSS_ID SnapshotId,
IN VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
IN VARIANT vProperty
) PURE;
STDMETHOD(RevertToSnapshot)(
IN VSS_ID SnapshotId
) PURE;
STDMETHOD(QueryRevertStatus)(
IN VSS_PWSZ pwszVolume,
OUT IVssAsync** ppAsync
) PURE;
// IVssProviderCreateSnapshotSet
STDMETHOD(EndPrepareSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(PreCommitSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(CommitSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(PostCommitSnapshots)(
IN VSS_ID SnapshotSetId,
IN LONG lSnapshotsCount
) PURE;
STDMETHOD(PreFinalCommitSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(PostFinalCommitSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(PostSnapshot)(
IN IDispatch *pCallback,
IN bool *pbCancelled
) PURE;
STDMETHOD(AbortSnapshots)(
IN VSS_ID SnapshotSetId
) PURE;
// miscellaneous methods
STDMETHOD(BreakSnapshotSet)(
IN VSS_ID SnapshotSetId
) PURE;
STDMETHOD(SetExposureProperties)
(
IN VSS_ID SnapshotId,
IN LONG lAttributes,
IN LPCWSTR wszExposed,
IN LPCWSTR wszExposedPath
) PURE;
STDMETHOD(ImportSnapshotSet)(
IN LPCWSTR wszXMLSnapshotSet,
IN bool *pbCancel
) PURE;
// IVssProviderNotifications
STDMETHOD(OnLoad)(
IN IUnknown* pCallback
) PURE;
STDMETHOD(OnUnload)(
IN BOOL bForceUnload
) PURE;
};
#endif // __VSS_IDL_HXX__