| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| cpp_quote("#include <winapifamily.h>") | |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | |
| import "oaidl.idl"; | |
| import "ocidl.idl"; | |
| import "vss.idl"; | |
| import "vdslun.idl"; | |
| interface IVssSnapshotProvider; | |
| interface IVssProviderNotifications; | |
| typedef VSS_PWSZ *PVSS_PWSZ; | |
| [ | |
| object, | |
| uuid(609e123e-2c5a-44d3-8f01-0b1d9a47d1ff), | |
| pointer_default(unique) | |
| ] | |
| interface IVssSoftwareSnapshotProvider : IUnknown | |
| { | |
| HRESULT SetContext( | |
| [in] LONG lContext); | |
| HRESULT GetSnapshotProperties( | |
| [in] VSS_ID SnapshotId, | |
| [out] VSS_SNAPSHOT_PROP *pProp); | |
| HRESULT Query( | |
| [in] VSS_ID QueriedObjectId, | |
| [in] VSS_OBJECT_TYPE eQueriedObjectType, | |
| [in] VSS_OBJECT_TYPE eReturnedObjectsType, | |
| [out] IVssEnumObject **ppEnum); | |
| HRESULT DeleteSnapshots( | |
| [in] VSS_ID SourceObjectId, | |
| [in] VSS_OBJECT_TYPE eSourceObjectType, | |
| [in] WINBOOL bForceDelete, | |
| [out] LONG *plDeletedSnapshots, | |
| [out] VSS_ID *pNondeletedSnapshotID); | |
| HRESULT BeginPrepareSnapshot( | |
| [in] VSS_ID SnapshotSetId, | |
| [in] VSS_ID SnapshotId, | |
| [in] VSS_PWSZ pwszVolumeName, | |
| [in] LONG lNewContext); | |
| HRESULT IsVolumeSupported( | |
| [in] VSS_PWSZ pwszVolumeName, | |
| [out] WINBOOL *pbSupportedByThisProvider); | |
| HRESULT IsVolumeSnapshotted( | |
| [in] VSS_PWSZ pwszVolumeName, | |
| [out] WINBOOL *pbSnapshotsPresent, | |
| [out] LONG *plSnapshotCompatibility); | |
| HRESULT SetSnapshotProperty( | |
| [in] VSS_ID SnapshotId, | |
| [in] VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | |
| [in] VARIANT vProperty); | |
| HRESULT RevertToSnapshot( | |
| [in] VSS_ID SnapshotId); | |
| HRESULT QueryRevertStatus( | |
| [in] VSS_PWSZ pwszVolume, | |
| [out] IVssAsync **ppAsync); | |
| } | |
| [ | |
| object, | |
| uuid(5f894e5b-1e39-4778-8e23-9abad9f0e08c), | |
| pointer_default(unique) | |
| ] | |
| interface IVssProviderCreateSnapshotSet : IUnknown | |
| { | |
| HRESULT EndPrepareSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| HRESULT PreCommitSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| HRESULT CommitSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| HRESULT PostCommitSnapshots( | |
| [in] VSS_ID SnapshotSetId, | |
| [in] LONG lSnapshotsCount); | |
| HRESULT PreFinalCommitSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| HRESULT PostFinalCommitSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| HRESULT AbortSnapshots( | |
| [in] VSS_ID SnapshotSetId); | |
| } | |
| [ | |
| object, | |
| uuid(e561901f-03a5-4afe-86d0-72baeece7004), | |
| pointer_default(unique) | |
| ] | |
| interface IVssProviderNotifications : IUnknown | |
| { | |
| HRESULT OnLoad( | |
| [in,unique] IUnknown *pCallback); | |
| HRESULT OnUnload( | |
| [in] WINBOOL bForceUnload); | |
| } | |
| [ | |
| object, | |
| uuid(9593a157-44e9-4344-bbeb-44fbf9b06b10), | |
| pointer_default(unique) | |
| ] | |
| interface IVssHardwareSnapshotProvider : IUnknown | |
| { | |
| 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] WINBOOL *pbIsSupported); | |
| HRESULT FillInLunInfo( | |
| [in] VSS_PWSZ wszDeviceName, | |
| [in, out] VDS_LUN_INFORMATION *pLunInfo, | |
| [out] WINBOOL *pbIsSupported); | |
| 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); | |
| 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); | |
| HRESULT LocateLuns( | |
| [in] LONG lLunCount, | |
| [in, unique, size_is(lLunCount)] VDS_LUN_INFORMATION *rgSourceLuns); | |
| HRESULT OnLunEmpty( | |
| [in, unique] VSS_PWSZ wszDeviceName, | |
| [in, unique] VDS_LUN_INFORMATION *pInformation); | |
| } | |
| [ | |
| object, | |
| uuid(7f5ba925-cdb1-4d11-a71f-339eb7e709fd), | |
| pointer_default(unique) | |
| ] | |
| interface IVssHardwareSnapshotProviderEx : IVssHardwareSnapshotProvider | |
| { | |
| HRESULT GetProviderCapabilities( | |
| [out] ULONGLONG *pllOriginalCapabilityMask); | |
| HRESULT OnLunStateChange( | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pSnapshotLuns, | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pOriginalLuns, | |
| [in] DWORD dwCount, | |
| [in] DWORD dwFlags); | |
| HRESULT ResyncLuns( | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pSourceLuns, | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pTargetLuns, | |
| [in] DWORD dwCount, | |
| [out] IVssAsync ** ppAsync); | |
| HRESULT OnReuseLuns( | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pSnapshotLuns, | |
| [in, unique, size_is(dwCount)] VDS_LUN_INFORMATION *pOriginalLuns, | |
| [in] DWORD dwCount); | |
| } | |
| [ | |
| object, | |
| uuid(c8636060-7c2e-11df-8c4a-0800200c9a66), | |
| pointer_default(unique) | |
| ] | |
| interface IVssFileShareSnapshotProvider : IUnknown | |
| { | |
| HRESULT SetContext( | |
| [in] LONG lContext); | |
| HRESULT GetSnapshotProperties( | |
| [in] VSS_ID SnapshotId, | |
| [out] VSS_SNAPSHOT_PROP *pProp); | |
| HRESULT Query( | |
| [in] VSS_ID QueriedObjectId, | |
| [in] VSS_OBJECT_TYPE eQueriedObjectType, | |
| [in] VSS_OBJECT_TYPE eReturnedObjectsType, | |
| [out] IVssEnumObject **ppEnum); | |
| HRESULT DeleteSnapshots( | |
| [in] VSS_ID SourceObjectId, | |
| [in] VSS_OBJECT_TYPE eSourceObjectType, | |
| [in] WINBOOL bForceDelete, | |
| [out] LONG *plDeletedSnapshots, | |
| [out] VSS_ID *pNondeletedSnapshotID); | |
| HRESULT BeginPrepareSnapshot( | |
| [in] VSS_ID SnapshotSetId, | |
| [in] VSS_ID SnapshotId, | |
| [in] VSS_PWSZ pwszSharePath, | |
| [in] LONG lNewContext, | |
| [in] VSS_ID ProviderId); | |
| HRESULT IsPathSupported( | |
| [in] VSS_PWSZ pwszSharePath, | |
| [out] WINBOOL *pbSupportedByThisProvider); | |
| HRESULT IsPathSnapshotted( | |
| [in] VSS_PWSZ pwszSharePath, | |
| [out] WINBOOL *pbSnapshotsPresent, | |
| [out] LONG *plSnapshotCompatibility); | |
| HRESULT SetSnapshotProperty( | |
| [in] VSS_ID SnapshotId, | |
| [in] VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, | |
| [in] VARIANT vProperty); | |
| } | |
| [ | |
| uuid(73c8b4c1-6e9d-4fc2-b304-030ec763fe81), | |
| version(1.0) | |
| ] | |
| library VSSProvider | |
| { | |
| importlib("stdole2.tlb"); | |
| } | |
| cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */") |