...
From 5f581fd1e51574210fb45e34538120e61ceca543 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <nathbap...@gmail.com> Date: Mon, 20 Apr 2020 23:58:29 +0530 Subject: [PATCH] headers: add vss.idl
Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com> --- mingw-w64-headers/Makefile.am | 1 + mingw-w64-headers/include/vss.idl | 307 ++++++++++++++++++++++++++++++ 2 files changed, 308 insertions(+) create mode 100644 mingw-w64-headers/include/vss.idl diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index 64a747e..b690199 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am @@ -195,6 +195,7 @@ IDL_SRCS = \ include/unknwn.idl \ include/unknwnbase.idl \ include/urlmon.idl \ + include/vss.idl \ include/wbemads.idl \ include/wbemcli.idl \ include/wbemdisp.idl \ diff --git a/mingw-w64-headers/include/vss.idl b/mingw-w64-headers/include/vss.idl new file mode 100644 index 0000000..07cca15 --- /dev/null +++ b/mingw-w64-headers/include/vss.idl @@ -0,0 +1,307 @@ +/** + * 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"; + +cpp_quote("#include \"vsserror.h\" ") + +cpp_quote("") +typedef WCHAR *VSS_PWSZ; +typedef LONGLONG VSS_TIMESTAMP; +typedef GUID VSS_ID; + +cpp_quote("") +typedef enum _VSS_OBJECT_TYPE { + VSS_OBJECT_UNKNOWN = 0, + VSS_OBJECT_NONE, + VSS_OBJECT_SNAPSHOT_SET, + VSS_OBJECT_SNAPSHOT, + VSS_OBJECT_PROVIDER, + VSS_OBJECT_TYPE_COUNT +} VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE; + +cpp_quote("") +typedef enum _VSS_SNAPSHOT_STATE { + VSS_SS_UNKNOWN = 0, + VSS_SS_PREPARING, + VSS_SS_PROCESSING_PREPARE, + VSS_SS_PREPARED, + VSS_SS_PROCESSING_PRECOMMIT, + VSS_SS_PRECOMMITTED, + VSS_SS_PROCESSING_COMMIT, + VSS_SS_COMMITTED, + VSS_SS_PROCESSING_POSTCOMMIT, + VSS_SS_PROCESSING_PREFINALCOMMIT, + VSS_SS_PREFINALCOMMITTED, + VSS_SS_PROCESSING_POSTFINALCOMMIT, + VSS_SS_CREATED, + VSS_SS_ABORTED, + VSS_SS_DELETED, + VSS_SS_POSTCOMMITTED, + VSS_SS_COUNT +} VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE; + +cpp_quote("") +typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES { + VSS_VOLSNAP_ATTR_PERSISTENT = 0x00000001, + VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x00000002, + VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE = 0x00000004, + VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE = 0x00000008, + VSS_VOLSNAP_ATTR_NO_WRITERS = 0x00000010, + VSS_VOLSNAP_ATTR_TRANSPORTABLE = 0x00000020, + VSS_VOLSNAP_ATTR_NOT_SURFACED = 0x00000040, + VSS_VOLSNAP_ATTR_NOT_TRANSACTED = 0x00000080, + VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED = 0x00010000, + VSS_VOLSNAP_ATTR_DIFFERENTIAL = 0x00020000, + VSS_VOLSNAP_ATTR_PLEX = 0x00040000, + VSS_VOLSNAP_ATTR_IMPORTED = 0x00080000, + VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY = 0x00100000, + VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY = 0x00200000, + VSS_VOLSNAP_ATTR_AUTORECOVER = 0x00400000, + VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY = 0x00800000, + VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0x01000000, + VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x02000000, + VSS_VOLSNAP_ATTR_FILE_SHARE = 0x04000000 +} VSS_VOLUME_SNAPSHOT_ATTRIBUTES, *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES; + +cpp_quote("") +typedef enum _VSS_SNAPSHOT_CONTEXT { + VSS_CTX_BACKUP = 0x00000000, + VSS_CTX_FILE_SHARE_BACKUP = VSS_VOLSNAP_ATTR_NO_WRITERS, + VSS_CTX_NAS_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS, + VSS_CTX_APP_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE, + VSS_CTX_CLIENT_ACCESSIBLE = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS, + VSS_CTX_CLIENT_ACCESSIBLE_WRITERS = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE, + VSS_CTX_ALL = 0xFFFFFFFF +} VSS_SNAPSHOT_CONTEXT, *PVSS_SNAPSHOT_CONTEXT; + +cpp_quote("") +typedef enum _VSS_PROVIDER_CAPABILITIES { + VSS_PRV_CAPABILITY_LEGACY = 0x00000001, + VSS_PRV_CAPABILITY_COMPLIANT = 0x00000002, + VSS_PRV_CAPABILITY_LUN_REPOINT = 0x00000004, + VSS_PRV_CAPABILITY_LUN_RESYNC = 0x00000008, + VSS_PRV_CAPABILITY_OFFLINE_CREATION = 0x00000010, + VSS_PRV_CAPABILITY_MULTIPLE_IMPORT = 0x00000020, + VSS_PRV_CAPABILITY_RECYCLING = 0x00000040, + VSS_PRV_CAPABILITY_PLEX = 0x00000080, + VSS_PRV_CAPABILITY_DIFFERENTIAL = 0x00000100, + VSS_PRV_CAPABILITY_CLUSTERED = 0x00000200 +} VSS_PROVIDER_CAPABILITIES, *PVSS_PROVIDER_CAPABILITIES; + +cpp_quote("") +typedef enum _VSS_HARDWARE_OPTIONS { + VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001, + VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002, + VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004, + VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008, + VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100, + VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200, + VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400, + VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800 +} VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS; + +cpp_quote("") +typedef enum _VSS_RECOVERY_OPTIONS { + VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x00000100, + VSS_RECOVERY_NO_VOLUME_CHECK = 0x00000200 +} VSS_RECOVERY_OPTIONS, *PVSS_RECOVERY_OPTIONS; + +cpp_quote("") +typedef enum _VSS_WRITER_STATE { + VSS_WS_UNKNOWN = 0, + VSS_WS_STABLE, + VSS_WS_WAITING_FOR_FREEZE, + VSS_WS_WAITING_FOR_THAW, + VSS_WS_WAITING_FOR_POST_SNAPSHOT, + VSS_WS_WAITING_FOR_BACKUP_COMPLETE, + VSS_WS_FAILED_AT_IDENTIFY, + VSS_WS_FAILED_AT_PREPARE_BACKUP, + VSS_WS_FAILED_AT_PREPARE_SNAPSHOT, + VSS_WS_FAILED_AT_FREEZE, + VSS_WS_FAILED_AT_THAW, + VSS_WS_FAILED_AT_POST_SNAPSHOT, + VSS_WS_FAILED_AT_BACKUP_COMPLETE, + VSS_WS_FAILED_AT_PRE_RESTORE, + VSS_WS_FAILED_AT_POST_RESTORE, + VSS_WS_FAILED_AT_BACKUPSHUTDOWN, + VSS_WS_COUNT +} VSS_WRITER_STATE, *PVSS_WRITER_STATE; + +cpp_quote("") +typedef enum _VSS_BACKUP_TYPE { + VSS_BT_UNDEFINED, + VSS_BT_FULL, + VSS_BT_INCREMENTAL, + VSS_BT_DIFFERENTIAL, + VSS_BT_LOG, + VSS_BT_COPY, + VSS_BT_OTHER +} VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE; + +cpp_quote("") +typedef enum _VSS_RESTORE_TYPE { + VSS_RTYPE_UNDEFINED, + VSS_RTYPE_BY_COPY, + VSS_RTYPE_IMPORT, + VSS_RTYPE_OTHER +} VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE; + +cpp_quote("") +typedef enum _VSS_ROLLFORWARD_TYPE { + VSS_RF_UNDEFINED, + VSS_RF_NONE, + VSS_RF_ALL, + VSS_RF_PARTIAL +} VSS_ROLLFORWARD_TYPE, *PVSS_ROLLFORWARD_TYPE; + +cpp_quote("") +typedef enum _VSS_PROVIDER_TYPE { + VSS_PROV_UNKNOWN = 0, + VSS_PROV_SYSTEM = 1, + VSS_PROV_SOFTWARE = 2, + VSS_PROV_HARDWARE = 3, + VSS_PROV_FILESHARE = 4 +} VSS_PROVIDER_TYPE, *PVSS_PROVIDER_TYPE; + +cpp_quote("") +typedef enum _VSS_APPLICATION_LEVEL { + VSS_APP_UNKNOWN = 0, + VSS_APP_SYSTEM = 1, + VSS_APP_BACK_END = 2, + VSS_APP_FRONT_END = 3, + VSS_APP_SYSTEM_RM = 4, + VSS_APP_AUTO = -1 +} VSS_APPLICATION_LEVEL, *PVSS_APPLICATION_LEVEL; + +cpp_quote("") +typedef enum _VSS_SNAPSHOT_COMPATIBILITY { + VSS_SC_DISABLE_DEFRAG = 0x1, + VSS_SC_DISABLE_CONTENTINDEX = 0x2 +} VSS_SNAPSHOT_COMPATIBILITY; + +cpp_quote("") +typedef enum _VSS_SNAPSHOT_PROPERTY_ID { + VSS_SPROPID_UNKNOWN = 0x00000000, + VSS_SPROPID_SNAPSHOT_ID = 0x00000001, + VSS_SPROPID_SNAPSHOT_SET_ID = 0x00000002, + VSS_SPROPID_SNAPSHOTS_COUNT = 0x00000003, + VSS_SPROPID_SNAPSHOT_DEVICE = 0x00000004, + VSS_SPROPID_ORIGINAL_VOLUME = 0x00000005, + VSS_SPROPID_ORIGINATING_MACHINE = 0x00000006, + VSS_SPROPID_SERVICE_MACHINE = 0x00000007, + VSS_SPROPID_EXPOSED_NAME = 0x00000008, + VSS_SPROPID_EXPOSED_PATH = 0x00000009, + VSS_SPROPID_PROVIDER_ID = 0x0000000A, + VSS_SPROPID_SNAPSHOT_ATTRIBUTES = 0x0000000B, + VSS_SPROPID_CREATION_TIMESTAMP = 0x0000000C, + VSS_SPROPID_STATUS = 0x0000000D +} VSS_SNAPSHOT_PROPERTY_ID, *PVSS_SNAPSHOT_PROPERTY_ID; + +cpp_quote("") +typedef enum _VSS_FILE_SPEC_BACKUP_TYPE { + VSS_FSBT_FULL_BACKUP_REQUIRED = 0x00000001, + VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x00000002, + VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x00000004, + VSS_FSBT_LOG_BACKUP_REQUIRED = 0x00000008, + VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x00000100, + VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x00000200, + VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x00000400, + VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x00000800, + VSS_FSBT_CREATED_DURING_BACKUP = 0x00010000, + VSS_FSBT_ALL_BACKUP_REQUIRED = 0x0000000F, + VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0x00000F00 +} VSS_FILE_SPEC_BACKUP_TYPE, *PVSS_FILE_SPEC_BACKUP_TYPE; + +cpp_quote("") +typedef enum _VSS_BACKUP_SCHEMA { + VSS_BS_UNDEFINED = 0x00000000, + VSS_BS_DIFFERENTIAL = 0x00000001, + VSS_BS_INCREMENTAL = 0x00000002, + VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x00000004, + VSS_BS_LOG = 0x00000008, + VSS_BS_COPY = 0x00000010, + VSS_BS_TIMESTAMPED = 0x00000020, + VSS_BS_LAST_MODIFY = 0x00000040, + VSS_BS_LSN = 0x00000080, + VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x00000100, + VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x00000200, + VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x00000400, + VSS_BS_ROLLFORWARD_RESTORE = 0x00001000, + VSS_BS_RESTORE_RENAME = 0x00002000, + VSS_BS_AUTHORITATIVE_RESTORE = 0x00004000, + VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x00008000 +} VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA; + +cpp_quote("") +typedef struct _VSS_SNAPSHOT_PROP { + VSS_ID m_SnapshotId; + VSS_ID m_SnapshotSetId; + LONG m_lSnapshotsCount; + VSS_PWSZ m_pwszSnapshotDeviceObject; + VSS_PWSZ m_pwszOriginalVolumeName; + VSS_PWSZ m_pwszOriginatingMachine; + VSS_PWSZ m_pwszServiceMachine; + VSS_PWSZ m_pwszExposedName; + VSS_PWSZ m_pwszExposedPath; + VSS_ID m_ProviderId; + LONG m_lSnapshotAttributes; + VSS_TIMESTAMP m_tsCreationTimestamp; + VSS_SNAPSHOT_STATE m_eStatus; +} VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP; + +cpp_quote("") +typedef struct _VSS_PROVIDER_PROP { + VSS_ID m_ProviderId; + VSS_PWSZ m_pwszProviderName; + VSS_PROVIDER_TYPE m_eProviderType; + VSS_PWSZ m_pwszProviderVersion; + VSS_ID m_ProviderVersionId; + CLSID m_ClassId; +} VSS_PROVIDER_PROP, *PVSS_PROVIDER_PROP; + +cpp_quote("") +typedef union _VSS_OBJECT_UNION { + VSS_SNAPSHOT_PROP Snap; + VSS_PROVIDER_PROP Prov; +} VSS_OBJECT_UNION; + +cpp_quote("") +typedef struct _VSS_OBJECT_PROP { + VSS_OBJECT_TYPE Type; + VSS_OBJECT_UNION Obj; +} VSS_OBJECT_PROP, *PVSS_OBJECT_PROP; + +cpp_quote("") +[ + object, + uuid(ae1c7110-2f60-11d3-8a39-00c04f72d8e3), + pointer_default(unique) +] +interface IVssEnumObject : IUnknown { + HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] VSS_OBJECT_PROP *rgelt, [out] ULONG *pceltFetched); + HRESULT Skip([in] ULONG celt); + HRESULT Reset(); + HRESULT Clone([in, out] IVssEnumObject **ppenum); +}; + +cpp_quote("") +[ + object, + uuid(507c37b4-cf5b-4e95-b0af-14eb9767467e), + pointer_default(unique) +] +interface IVssAsync : IUnknown { + HRESULT Cancel(); + HRESULT Wait([in, defaultvalue(0xFFFFFFFF)] DWORD dwMilliseconds); + HRESULT QueryStatus([out] HRESULT *pHrResult, [in, out, unique] INT *pReserved); +}; + +cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") -- 2.26.1
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public