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.
 
 
 
 
 
 

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