From eb79996daae08a7c5a6d31c50eb010be8eb65501 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Fri, 4 Feb 2022 10:35:06 +0530 Subject: [PATCH 3/3] headers: Add vsprov.idl file
Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/Makefile.am | 1 + mingw-w64-headers/include/vsprov.idl | 249 +++++++++++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 mingw-w64-headers/include/vsprov.idl diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index 574b823..0aa76fd 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am @@ -227,6 +227,7 @@ IDL_SRCS = \ include/urlmon.idl \ include/vdslun.idl \ include/vsadmin.idl \ + include/vsprov.idl \ include/vss.idl \ include/wbemads.idl \ include/wbemcli.idl \ diff --git a/mingw-w64-headers/include/vsprov.idl b/mingw-w64-headers/include/vsprov.idl new file mode 100644 index 0000000..54fe19c --- /dev/null +++ b/mingw-w64-headers/include/vsprov.idl @@ -0,0 +1,249 @@ +/** + * 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 */") -- 2.35.1
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
