224 lines
5.4 KiB
Plaintext
224 lines
5.4 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 2000 Microsoft Corporation
|
|
//
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Imports
|
|
//
|
|
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
import "vss.idl";
|
|
import "vdslun.idl";
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Forward declarations
|
|
//
|
|
|
|
// interfaces supported by the provider
|
|
interface IVssSnapshotProvider;
|
|
interface IVssProviderNotifications;
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Interfaces
|
|
//
|
|
|
|
[
|
|
object,
|
|
uuid(FBE2D3E8-4C8C-4464-9FE9-C3B6AE023357),
|
|
helpstring("IVssSoftwareSnapshotProvider interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssSoftwareSnapshotProvider : IUnknown
|
|
{
|
|
[helpstring("method SetContext")]
|
|
HRESULT SetContext(
|
|
[in] LONG lContext
|
|
);
|
|
|
|
[helpstring("method GetSnapshot")]
|
|
HRESULT GetSnapshotProperties(
|
|
[in] VSS_ID SnapshotId,
|
|
[out] VSS_SNAPSHOT_PROP *pProp
|
|
);
|
|
|
|
[helpstring("method Query")]
|
|
HRESULT Query(
|
|
[in] VSS_ID QueriedObjectId,
|
|
[in] VSS_OBJECT_TYPE eQueriedObjectType,
|
|
[in] VSS_OBJECT_TYPE eReturnedObjectsType,
|
|
[out] IVssEnumObject **ppEnum
|
|
);
|
|
|
|
[helpstring("method DeleteSnapshots")]
|
|
HRESULT DeleteSnapshots(
|
|
[in] VSS_ID SourceObjectId,
|
|
[in] VSS_OBJECT_TYPE eSourceObjectType,
|
|
[in] BOOL bForceDelete,
|
|
[out] LONG* plDeletedSnapshots,
|
|
[out] VSS_ID* pNondeletedSnapshotID
|
|
);
|
|
|
|
[helpstring("method BeginPrepareSnapshot")]
|
|
HRESULT BeginPrepareSnapshot(
|
|
[in] VSS_ID SnapshotSetId,
|
|
[in] VSS_ID SnapshotId,
|
|
[in] VSS_PWSZ pwszVolumeName
|
|
);
|
|
|
|
[helpstring("method IsVolumeSupported")]
|
|
HRESULT IsVolumeSupported(
|
|
[in] VSS_PWSZ pwszVolumeName,
|
|
[out] BOOL * pbSupportedByThisProvider
|
|
);
|
|
|
|
[helpstring("method IsVolumeSnapshotted")]
|
|
HRESULT IsVolumeSnapshotted(
|
|
[in] VSS_PWSZ pwszVolumeName,
|
|
[out] BOOL * pbSnapshotsPresent,
|
|
[out] LONG * plSnapshotCompatibility
|
|
);
|
|
|
|
[helpstring("method MakeSnapshotReadWrite")]
|
|
HRESULT MakeSnapshotReadWrite (
|
|
[in] VSS_ID SnapshotId
|
|
);
|
|
|
|
[helpstring("method SetSnapshotProperty")]
|
|
HRESULT SetSnapshotProperty (
|
|
[in] VSS_ID SnapshotId,
|
|
[in] VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
|
|
[in] VARIANT vProperty
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(C4226E73-2F8B-490D-84E0-F9486B4ED627),
|
|
helpstring("IVssProviderCreateSnapshotSet interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssProviderCreateSnapshotSet : IUnknown
|
|
{
|
|
[helpstring("method EndPrepareSnapshots")]
|
|
HRESULT EndPrepareSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[helpstring("method PreCommitSnapshots")]
|
|
HRESULT PreCommitSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[helpstring("method CommitSnapshots")]
|
|
HRESULT CommitSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[helpstring("method PostCommitSnapshots")]
|
|
HRESULT PostCommitSnapshots(
|
|
[in] VSS_ID SnapshotSetId,
|
|
[in] LONG lSnapshotsCount
|
|
);
|
|
|
|
[helpstring("method AbortSnapshots")]
|
|
HRESULT AbortSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(E561901F-03A5-4afe-86D0-72BAEECE7004),
|
|
helpstring("IVssProviderNotifications interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssProviderNotifications : IUnknown
|
|
{
|
|
[helpstring("method OnLoad")]
|
|
HRESULT OnLoad(
|
|
[in,unique] IUnknown* pCallback
|
|
);
|
|
|
|
[helpstring("method OnUnload")]
|
|
HRESULT OnUnload(
|
|
[in] BOOL bForceUnload
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(9593A157-44E9-4344-BBEB-44FBF9B06B10),
|
|
helpstring("IVssHardwareSnapshotProvider interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssHardwareSnapshotProvider : IUnknown
|
|
{
|
|
[helpstring("method AreLunsSupported")]
|
|
HRESULT AreLunsSupported (
|
|
[in] LONG lLunCount,
|
|
[in] LONG lContext,
|
|
[in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *pLunInformation,
|
|
[out] BOOL *pbIsSuported
|
|
);
|
|
|
|
[helpstring("method BeginPrepareSnapshot")]
|
|
HRESULT BeginPrepareSnapshot(
|
|
[in] VSS_ID SnapshotSetId,
|
|
[in] VSS_ID SnapshotId,
|
|
[in] LONG lContext,
|
|
[in] LONG lLunCount,
|
|
[in, unique, size_is(lLunCount)]
|
|
VDS_LUN_INFORMATION *rgLunInformation
|
|
);
|
|
|
|
|
|
|
|
[helpstring("method GetTargetLuns")]
|
|
HRESULT GetTargetLuns(
|
|
[in] LONG lLunCount,
|
|
[in, unique, size_is(lLunCount)]
|
|
VDS_LUN_INFORMATION *rgSourceLuns,
|
|
[out, size_is(lLunCount)]
|
|
VDS_LUN_INFORMATION **rgDestinationLuns
|
|
);
|
|
|
|
[helpstring("method LocateLuns")]
|
|
HRESULT LocateLuns(
|
|
[in] LONG lLunCount,
|
|
[in, unique, size_is(lLunCount)]
|
|
VDS_LUN_INFORMATION *rgSourceLuns
|
|
);
|
|
|
|
[helpstring("OnLunEmpty")]
|
|
HRESULT OnLunEmpty (
|
|
[in, unique] VDS_LUN_INFORMATION *pInformation
|
|
);
|
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// VSS Type Library
|
|
|
|
[
|
|
uuid(73C8B4C1-6E9D-4fc2-B304-030EC763FE81),
|
|
version(1.0),
|
|
helpstring("Volume Shadow Copy Service Provider 1.0 Type Library")
|
|
]
|
|
library VSSProvider
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
}
|