...
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

Reply via email to