/** * 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 ") 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 */")