mirror of
https://git.code.sf.net/p/mingw-w64/mingw-w64
synced 2024-11-23 09:54:39 +08:00
8a2148f39a
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com> Signed-off-by: LIU Hao <lh_mouse@126.com>
250 lines
6.2 KiB
Plaintext
250 lines
6.2 KiB
Plaintext
/**
|
|
* 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 */")
|