| /** | |
| * 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("") | |
| [switch_type(VSS_OBJECT_TYPE)] | |
| typedef union { | |
| [case(VSS_OBJECT_SNAPSHOT)] VSS_SNAPSHOT_PROP Snap; | |
| [case(VSS_OBJECT_PROVIDER)] VSS_PROVIDER_PROP Prov; | |
| [default]; | |
| } VSS_OBJECT_UNION; | |
| cpp_quote("") | |
| typedef struct _VSS_OBJECT_PROP { | |
| VSS_OBJECT_TYPE Type; | |
| [switch_is(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) */") |