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.
252 lines
7.8 KiB
252 lines
7.8 KiB
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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;
|
|
|
|
|
|
typedef VSS_PWSZ *PVSS_PWSZ;
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Interfaces
|
|
//
|
|
|
|
[
|
|
object,
|
|
uuid(609e123e-2c5a-44d3-8f01-0b1d9a47d1ff),
|
|
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,
|
|
[in] LONG lNewContext
|
|
);
|
|
|
|
[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 SetSnapshotProperty")]
|
|
HRESULT SetSnapshotProperty (
|
|
[in] VSS_ID SnapshotId,
|
|
[in] VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
|
|
[in] VARIANT vProperty
|
|
);
|
|
|
|
[helpstring("method RevertToSnapshot")]
|
|
HRESULT RevertToSnapshot(
|
|
[in] VSS_ID SnapshotId
|
|
);
|
|
|
|
[helpstring("method QueryRevertStatus")]
|
|
HRESULT QueryRevertStatus(
|
|
[in] VSS_PWSZ pwszVolume,
|
|
[out] IVssAsync** ppAsync
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(5F894E5B-1E39-4778-8E23-9ABAD9F0E08C),
|
|
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 PreFinalCommitSnapshots")]
|
|
HRESULT PreFinalCommitSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[helpstring("method PostFinalCommitSnapshots")]
|
|
HRESULT PostFinalCommitSnapshots(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[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, unique, size_is(lLunCount)] VSS_PWSZ *rgwszDevices,
|
|
[in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *pLunInformation,
|
|
[out] BOOL *pbIsSupported
|
|
);
|
|
|
|
[helpstring("method FillInLunInfo")]
|
|
HRESULT FillInLunInfo (
|
|
[in] VSS_PWSZ wszDeviceName,
|
|
[in, out] VDS_LUN_INFORMATION *pLunInfo,
|
|
[out] BOOL *pbIsSupported
|
|
);
|
|
|
|
|
|
[helpstring("method BeginPrepareSnapshot")]
|
|
HRESULT BeginPrepareSnapshot(
|
|
[in] VSS_ID SnapshotSetId,
|
|
[in] VSS_ID SnapshotId,
|
|
[in] LONG lContext,
|
|
[in] LONG lLunCount,
|
|
[in, unique, size_is(lLunCount)] VSS_PWSZ *rgDeviceNames,
|
|
[in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *rgLunInformation
|
|
);
|
|
|
|
|
|
|
|
[helpstring("method GetTargetLuns")]
|
|
HRESULT GetTargetLuns(
|
|
[in] LONG lLunCount,
|
|
[in, unique, size_is(lLunCount)] VSS_PWSZ *rgDeviceNames,
|
|
[in, unique, size_is(lLunCount)] VDS_LUN_INFORMATION *rgSourceLuns,
|
|
[in, 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] VSS_PWSZ wszDeviceName,
|
|
[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");
|
|
|
|
}
|