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