2025-04-27 07:49:33 -04:00

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");
}