| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 |  | 
 
 
 
 
 | 7 | cpp_quote("#include <winapifamily.h>") | 
 
 
 
 
 | 8 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | import "oaidl.idl"; | 
 
 
 
 
 | 11 | import "ocidl.idl"; | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | cpp_quote("#include \"vsserror.h\" ") | 
 
 
 
 
 | 14 |  | 
 
 
 
 
 | 15 | cpp_quote("") | 
 
 
 
 
 | 16 | typedef WCHAR *VSS_PWSZ; | 
 
 
 
 
 | 17 | typedef LONGLONG VSS_TIMESTAMP; | 
 
 
 
 
 | 18 | typedef GUID VSS_ID; | 
 
 
 
 
 | 19 |  | 
 
 
 
 
 | 20 | cpp_quote("") | 
 
 
 
 
 | 21 | typedef enum _VSS_OBJECT_TYPE { | 
 
 
 
 
 | 22 | VSS_OBJECT_UNKNOWN = 0, | 
 
 
 
 
 | 23 | VSS_OBJECT_NONE, | 
 
 
 
 
 | 24 | VSS_OBJECT_SNAPSHOT_SET, | 
 
 
 
 
 | 25 | VSS_OBJECT_SNAPSHOT, | 
 
 
 
 
 | 26 | VSS_OBJECT_PROVIDER, | 
 
 
 
 
 | 27 | VSS_OBJECT_TYPE_COUNT | 
 
 
 
 
 | 28 | } VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE; | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | cpp_quote("") | 
 
 
 
 
 | 31 | typedef enum _VSS_SNAPSHOT_STATE { | 
 
 
 
 
 | 32 | VSS_SS_UNKNOWN = 0, | 
 
 
 
 
 | 33 | VSS_SS_PREPARING, | 
 
 
 
 
 | 34 | VSS_SS_PROCESSING_PREPARE, | 
 
 
 
 
 | 35 | VSS_SS_PREPARED, | 
 
 
 
 
 | 36 | VSS_SS_PROCESSING_PRECOMMIT, | 
 
 
 
 
 | 37 | VSS_SS_PRECOMMITTED, | 
 
 
 
 
 | 38 | VSS_SS_PROCESSING_COMMIT, | 
 
 
 
 
 | 39 | VSS_SS_COMMITTED, | 
 
 
 
 
 | 40 | VSS_SS_PROCESSING_POSTCOMMIT, | 
 
 
 
 
 | 41 | VSS_SS_PROCESSING_PREFINALCOMMIT, | 
 
 
 
 
 | 42 | VSS_SS_PREFINALCOMMITTED, | 
 
 
 
 
 | 43 | VSS_SS_PROCESSING_POSTFINALCOMMIT, | 
 
 
 
 
 | 44 | VSS_SS_CREATED, | 
 
 
 
 
 | 45 | VSS_SS_ABORTED, | 
 
 
 
 
 | 46 | VSS_SS_DELETED, | 
 
 
 
 
 | 47 | VSS_SS_POSTCOMMITTED, | 
 
 
 
 
 | 48 | VSS_SS_COUNT | 
 
 
 
 
 | 49 | } VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE; | 
 
 
 
 
 | 50 |  | 
 
 
 
 
 | 51 | cpp_quote("") | 
 
 
 
 
 | 52 | typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES { | 
 
 
 
 
 | 53 | VSS_VOLSNAP_ATTR_PERSISTENT = 0x00000001, | 
 
 
 
 
 | 54 | VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x00000002, | 
 
 
 
 
 | 55 | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE = 0x00000004, | 
 
 
 
 
 | 56 | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE = 0x00000008, | 
 
 
 
 
 | 57 | VSS_VOLSNAP_ATTR_NO_WRITERS = 0x00000010, | 
 
 
 
 
 | 58 | VSS_VOLSNAP_ATTR_TRANSPORTABLE = 0x00000020, | 
 
 
 
 
 | 59 | VSS_VOLSNAP_ATTR_NOT_SURFACED = 0x00000040, | 
 
 
 
 
 | 60 | VSS_VOLSNAP_ATTR_NOT_TRANSACTED = 0x00000080, | 
 
 
 
 
 | 61 | VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED = 0x00010000, | 
 
 
 
 
 | 62 | VSS_VOLSNAP_ATTR_DIFFERENTIAL = 0x00020000, | 
 
 
 
 
 | 63 | VSS_VOLSNAP_ATTR_PLEX = 0x00040000, | 
 
 
 
 
 | 64 | VSS_VOLSNAP_ATTR_IMPORTED = 0x00080000, | 
 
 
 
 
 | 65 | VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY = 0x00100000, | 
 
 
 
 
 | 66 | VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY = 0x00200000, | 
 
 
 
 
 | 67 | VSS_VOLSNAP_ATTR_AUTORECOVER = 0x00400000, | 
 
 
 
 
 | 68 | VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY = 0x00800000, | 
 
 
 
 
 | 69 | VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0x01000000, | 
 
 
 
 
 | 70 | VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x02000000, | 
 
 
 
 
 | 71 | VSS_VOLSNAP_ATTR_FILE_SHARE = 0x04000000 | 
 
 
 
 
 | 72 | } VSS_VOLUME_SNAPSHOT_ATTRIBUTES, *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES; | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | cpp_quote("") | 
 
 
 
 
 | 75 | typedef enum _VSS_SNAPSHOT_CONTEXT { | 
 
 
 
 
 | 76 | VSS_CTX_BACKUP = 0x00000000, | 
 
 
 
 
 | 77 | VSS_CTX_FILE_SHARE_BACKUP = VSS_VOLSNAP_ATTR_NO_WRITERS, | 
 
 
 
 
 | 78 | VSS_CTX_NAS_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS, | 
 
 
 
 
 | 79 | VSS_CTX_APP_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE, | 
 
 
 
 
 | 80 | VSS_CTX_CLIENT_ACCESSIBLE = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS, | 
 
 
 
 
 | 81 | VSS_CTX_CLIENT_ACCESSIBLE_WRITERS = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE, | 
 
 
 
 
 | 82 | VSS_CTX_ALL = 0xFFFFFFFF | 
 
 
 
 
 | 83 | } VSS_SNAPSHOT_CONTEXT, *PVSS_SNAPSHOT_CONTEXT; | 
 
 
 
 
 | 84 |  | 
 
 
 
 
 | 85 | cpp_quote("") | 
 
 
 
 
 | 86 | typedef enum _VSS_PROVIDER_CAPABILITIES { | 
 
 
 
 
 | 87 | VSS_PRV_CAPABILITY_LEGACY = 0x00000001, | 
 
 
 
 
 | 88 | VSS_PRV_CAPABILITY_COMPLIANT = 0x00000002, | 
 
 
 
 
 | 89 | VSS_PRV_CAPABILITY_LUN_REPOINT = 0x00000004, | 
 
 
 
 
 | 90 | VSS_PRV_CAPABILITY_LUN_RESYNC = 0x00000008, | 
 
 
 
 
 | 91 | VSS_PRV_CAPABILITY_OFFLINE_CREATION = 0x00000010, | 
 
 
 
 
 | 92 | VSS_PRV_CAPABILITY_MULTIPLE_IMPORT = 0x00000020, | 
 
 
 
 
 | 93 | VSS_PRV_CAPABILITY_RECYCLING = 0x00000040, | 
 
 
 
 
 | 94 | VSS_PRV_CAPABILITY_PLEX = 0x00000080, | 
 
 
 
 
 | 95 | VSS_PRV_CAPABILITY_DIFFERENTIAL = 0x00000100, | 
 
 
 
 
 | 96 | VSS_PRV_CAPABILITY_CLUSTERED = 0x00000200 | 
 
 
 
 
 | 97 | } VSS_PROVIDER_CAPABILITIES, *PVSS_PROVIDER_CAPABILITIES; | 
 
 
 
 
 | 98 |  | 
 
 
 
 
 | 99 | cpp_quote("") | 
 
 
 
 
 | 100 | typedef enum _VSS_HARDWARE_OPTIONS { | 
 
 
 
 
 | 101 | VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001, | 
 
 
 
 
 | 102 | VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002, | 
 
 
 
 
 | 103 | VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004, | 
 
 
 
 
 | 104 | VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008, | 
 
 
 
 
 | 105 | VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100, | 
 
 
 
 
 | 106 | VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200, | 
 
 
 
 
 | 107 | VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400, | 
 
 
 
 
 | 108 | VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800 | 
 
 
 
 
 | 109 | } VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS; | 
 
 
 
 
 | 110 |  | 
 
 
 
 
 | 111 | cpp_quote("") | 
 
 
 
 
 | 112 | typedef enum _VSS_RECOVERY_OPTIONS { | 
 
 
 
 
 | 113 | VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x00000100, | 
 
 
 
 
 | 114 | VSS_RECOVERY_NO_VOLUME_CHECK = 0x00000200 | 
 
 
 
 
 | 115 | } VSS_RECOVERY_OPTIONS, *PVSS_RECOVERY_OPTIONS; | 
 
 
 
 
 | 116 |  | 
 
 
 
 
 | 117 | cpp_quote("") | 
 
 
 
 
 | 118 | typedef enum _VSS_WRITER_STATE { | 
 
 
 
 
 | 119 | VSS_WS_UNKNOWN = 0, | 
 
 
 
 
 | 120 | VSS_WS_STABLE, | 
 
 
 
 
 | 121 | VSS_WS_WAITING_FOR_FREEZE, | 
 
 
 
 
 | 122 | VSS_WS_WAITING_FOR_THAW, | 
 
 
 
 
 | 123 | VSS_WS_WAITING_FOR_POST_SNAPSHOT, | 
 
 
 
 
 | 124 | VSS_WS_WAITING_FOR_BACKUP_COMPLETE, | 
 
 
 
 
 | 125 | VSS_WS_FAILED_AT_IDENTIFY, | 
 
 
 
 
 | 126 | VSS_WS_FAILED_AT_PREPARE_BACKUP, | 
 
 
 
 
 | 127 | VSS_WS_FAILED_AT_PREPARE_SNAPSHOT, | 
 
 
 
 
 | 128 | VSS_WS_FAILED_AT_FREEZE, | 
 
 
 
 
 | 129 | VSS_WS_FAILED_AT_THAW, | 
 
 
 
 
 | 130 | VSS_WS_FAILED_AT_POST_SNAPSHOT, | 
 
 
 
 
 | 131 | VSS_WS_FAILED_AT_BACKUP_COMPLETE, | 
 
 
 
 
 | 132 | VSS_WS_FAILED_AT_PRE_RESTORE, | 
 
 
 
 
 | 133 | VSS_WS_FAILED_AT_POST_RESTORE, | 
 
 
 
 
 | 134 | VSS_WS_FAILED_AT_BACKUPSHUTDOWN, | 
 
 
 
 
 | 135 | VSS_WS_COUNT | 
 
 
 
 
 | 136 | } VSS_WRITER_STATE, *PVSS_WRITER_STATE; | 
 
 
 
 
 | 137 |  | 
 
 
 
 
 | 138 | cpp_quote("") | 
 
 
 
 
 | 139 | typedef enum _VSS_BACKUP_TYPE { | 
 
 
 
 
 | 140 | VSS_BT_UNDEFINED, | 
 
 
 
 
 | 141 | VSS_BT_FULL, | 
 
 
 
 
 | 142 | VSS_BT_INCREMENTAL, | 
 
 
 
 
 | 143 | VSS_BT_DIFFERENTIAL, | 
 
 
 
 
 | 144 | VSS_BT_LOG, | 
 
 
 
 
 | 145 | VSS_BT_COPY, | 
 
 
 
 
 | 146 | VSS_BT_OTHER | 
 
 
 
 
 | 147 | } VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE; | 
 
 
 
 
 | 148 |  | 
 
 
 
 
 | 149 | cpp_quote("") | 
 
 
 
 
 | 150 | typedef enum _VSS_RESTORE_TYPE { | 
 
 
 
 
 | 151 | VSS_RTYPE_UNDEFINED, | 
 
 
 
 
 | 152 | VSS_RTYPE_BY_COPY, | 
 
 
 
 
 | 153 | VSS_RTYPE_IMPORT, | 
 
 
 
 
 | 154 | VSS_RTYPE_OTHER | 
 
 
 
 
 | 155 | } VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE; | 
 
 
 
 
 | 156 |  | 
 
 
 
 
 | 157 | cpp_quote("") | 
 
 
 
 
 | 158 | typedef enum _VSS_ROLLFORWARD_TYPE { | 
 
 
 
 
 | 159 | VSS_RF_UNDEFINED, | 
 
 
 
 
 | 160 | VSS_RF_NONE, | 
 
 
 
 
 | 161 | VSS_RF_ALL, | 
 
 
 
 
 | 162 | VSS_RF_PARTIAL | 
 
 
 
 
 | 163 | } VSS_ROLLFORWARD_TYPE, *PVSS_ROLLFORWARD_TYPE; | 
 
 
 
 
 | 164 |  | 
 
 
 
 
 | 165 | cpp_quote("") | 
 
 
 
 
 | 166 | typedef enum _VSS_PROVIDER_TYPE { | 
 
 
 
 
 | 167 | VSS_PROV_UNKNOWN = 0, | 
 
 
 
 
 | 168 | VSS_PROV_SYSTEM = 1, | 
 
 
 
 
 | 169 | VSS_PROV_SOFTWARE = 2, | 
 
 
 
 
 | 170 | VSS_PROV_HARDWARE = 3, | 
 
 
 
 
 | 171 | VSS_PROV_FILESHARE = 4 | 
 
 
 
 
 | 172 | } VSS_PROVIDER_TYPE, *PVSS_PROVIDER_TYPE; | 
 
 
 
 
 | 173 |  | 
 
 
 
 
 | 174 | cpp_quote("") | 
 
 
 
 
 | 175 | typedef enum _VSS_APPLICATION_LEVEL { | 
 
 
 
 
 | 176 | VSS_APP_UNKNOWN = 0, | 
 
 
 
 
 | 177 | VSS_APP_SYSTEM = 1, | 
 
 
 
 
 | 178 | VSS_APP_BACK_END = 2, | 
 
 
 
 
 | 179 | VSS_APP_FRONT_END = 3, | 
 
 
 
 
 | 180 | VSS_APP_SYSTEM_RM = 4, | 
 
 
 
 
 | 181 | VSS_APP_AUTO = -1 | 
 
 
 
 
 | 182 | } VSS_APPLICATION_LEVEL, *PVSS_APPLICATION_LEVEL; | 
 
 
 
 
 | 183 |  | 
 
 
 
 
 | 184 | cpp_quote("") | 
 
 
 
 
 | 185 | typedef enum _VSS_SNAPSHOT_COMPATIBILITY { | 
 
 
 
 
 | 186 | VSS_SC_DISABLE_DEFRAG = 0x1, | 
 
 
 
 
 | 187 | VSS_SC_DISABLE_CONTENTINDEX = 0x2 | 
 
 
 
 
 | 188 | } VSS_SNAPSHOT_COMPATIBILITY; | 
 
 
 
 
 | 189 |  | 
 
 
 
 
 | 190 | cpp_quote("") | 
 
 
 
 
 | 191 | typedef enum _VSS_SNAPSHOT_PROPERTY_ID { | 
 
 
 
 
 | 192 | VSS_SPROPID_UNKNOWN = 0x00000000, | 
 
 
 
 
 | 193 | VSS_SPROPID_SNAPSHOT_ID = 0x00000001, | 
 
 
 
 
 | 194 | VSS_SPROPID_SNAPSHOT_SET_ID = 0x00000002, | 
 
 
 
 
 | 195 | VSS_SPROPID_SNAPSHOTS_COUNT = 0x00000003, | 
 
 
 
 
 | 196 | VSS_SPROPID_SNAPSHOT_DEVICE = 0x00000004, | 
 
 
 
 
 | 197 | VSS_SPROPID_ORIGINAL_VOLUME = 0x00000005, | 
 
 
 
 
 | 198 | VSS_SPROPID_ORIGINATING_MACHINE = 0x00000006, | 
 
 
 
 
 | 199 | VSS_SPROPID_SERVICE_MACHINE = 0x00000007, | 
 
 
 
 
 | 200 | VSS_SPROPID_EXPOSED_NAME = 0x00000008, | 
 
 
 
 
 | 201 | VSS_SPROPID_EXPOSED_PATH = 0x00000009, | 
 
 
 
 
 | 202 | VSS_SPROPID_PROVIDER_ID = 0x0000000A, | 
 
 
 
 
 | 203 | VSS_SPROPID_SNAPSHOT_ATTRIBUTES = 0x0000000B, | 
 
 
 
 
 | 204 | VSS_SPROPID_CREATION_TIMESTAMP = 0x0000000C, | 
 
 
 
 
 | 205 | VSS_SPROPID_STATUS = 0x0000000D | 
 
 
 
 
 | 206 | } VSS_SNAPSHOT_PROPERTY_ID, *PVSS_SNAPSHOT_PROPERTY_ID; | 
 
 
 
 
 | 207 |  | 
 
 
 
 
 | 208 | cpp_quote("") | 
 
 
 
 
 | 209 | typedef enum _VSS_FILE_SPEC_BACKUP_TYPE { | 
 
 
 
 
 | 210 | VSS_FSBT_FULL_BACKUP_REQUIRED = 0x00000001, | 
 
 
 
 
 | 211 | VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x00000002, | 
 
 
 
 
 | 212 | VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x00000004, | 
 
 
 
 
 | 213 | VSS_FSBT_LOG_BACKUP_REQUIRED = 0x00000008, | 
 
 
 
 
 | 214 | VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x00000100, | 
 
 
 
 
 | 215 | VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x00000200, | 
 
 
 
 
 | 216 | VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x00000400, | 
 
 
 
 
 | 217 | VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x00000800, | 
 
 
 
 
 | 218 | VSS_FSBT_CREATED_DURING_BACKUP = 0x00010000, | 
 
 
 
 
 | 219 | VSS_FSBT_ALL_BACKUP_REQUIRED = 0x0000000F, | 
 
 
 
 
 | 220 | VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0x00000F00 | 
 
 
 
 
 | 221 | } VSS_FILE_SPEC_BACKUP_TYPE, *PVSS_FILE_SPEC_BACKUP_TYPE; | 
 
 
 
 
 | 222 |  | 
 
 
 
 
 | 223 | cpp_quote("") | 
 
 
 
 
 | 224 | typedef enum _VSS_BACKUP_SCHEMA { | 
 
 
 
 
 | 225 | VSS_BS_UNDEFINED = 0x00000000, | 
 
 
 
 
 | 226 | VSS_BS_DIFFERENTIAL = 0x00000001, | 
 
 
 
 
 | 227 | VSS_BS_INCREMENTAL = 0x00000002, | 
 
 
 
 
 | 228 | VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x00000004, | 
 
 
 
 
 | 229 | VSS_BS_LOG = 0x00000008, | 
 
 
 
 
 | 230 | VSS_BS_COPY = 0x00000010, | 
 
 
 
 
 | 231 | VSS_BS_TIMESTAMPED = 0x00000020, | 
 
 
 
 
 | 232 | VSS_BS_LAST_MODIFY = 0x00000040, | 
 
 
 
 
 | 233 | VSS_BS_LSN = 0x00000080, | 
 
 
 
 
 | 234 | VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x00000100, | 
 
 
 
 
 | 235 | VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x00000200, | 
 
 
 
 
 | 236 | VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x00000400, | 
 
 
 
 
 | 237 | VSS_BS_ROLLFORWARD_RESTORE = 0x00001000, | 
 
 
 
 
 | 238 | VSS_BS_RESTORE_RENAME = 0x00002000, | 
 
 
 
 
 | 239 | VSS_BS_AUTHORITATIVE_RESTORE = 0x00004000, | 
 
 
 
 
 | 240 | VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x00008000 | 
 
 
 
 
 | 241 | } VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA; | 
 
 
 
 
 | 242 |  | 
 
 
 
 
 | 243 | cpp_quote("") | 
 
 
 
 
 | 244 | typedef struct _VSS_SNAPSHOT_PROP { | 
 
 
 
 
 | 245 | VSS_ID m_SnapshotId; | 
 
 
 
 
 | 246 | VSS_ID m_SnapshotSetId; | 
 
 
 
 
 | 247 | LONG m_lSnapshotsCount; | 
 
 
 
 
 | 248 | VSS_PWSZ m_pwszSnapshotDeviceObject; | 
 
 
 
 
 | 249 | VSS_PWSZ m_pwszOriginalVolumeName; | 
 
 
 
 
 | 250 | VSS_PWSZ m_pwszOriginatingMachine; | 
 
 
 
 
 | 251 | VSS_PWSZ m_pwszServiceMachine; | 
 
 
 
 
 | 252 | VSS_PWSZ m_pwszExposedName; | 
 
 
 
 
 | 253 | VSS_PWSZ m_pwszExposedPath; | 
 
 
 
 
 | 254 | VSS_ID m_ProviderId; | 
 
 
 
 
 | 255 | LONG m_lSnapshotAttributes; | 
 
 
 
 
 | 256 | VSS_TIMESTAMP m_tsCreationTimestamp; | 
 
 
 
 
 | 257 | VSS_SNAPSHOT_STATE m_eStatus; | 
 
 
 
 
 | 258 | } VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP; | 
 
 
 
 
 | 259 |  | 
 
 
 
 
 | 260 | cpp_quote("") | 
 
 
 
 
 | 261 | typedef struct _VSS_PROVIDER_PROP { | 
 
 
 
 
 | 262 | VSS_ID m_ProviderId; | 
 
 
 
 
 | 263 | VSS_PWSZ m_pwszProviderName; | 
 
 
 
 
 | 264 | VSS_PROVIDER_TYPE m_eProviderType; | 
 
 
 
 
 | 265 | VSS_PWSZ m_pwszProviderVersion; | 
 
 
 
 
 | 266 | VSS_ID m_ProviderVersionId; | 
 
 
 
 
 | 267 | CLSID m_ClassId; | 
 
 
 
 
 | 268 | } VSS_PROVIDER_PROP, *PVSS_PROVIDER_PROP; | 
 
 
 
 
 | 269 |  | 
 
 
 
 
 | 270 | cpp_quote("") | 
 
 
 
 
 | 271 | [switch_type(VSS_OBJECT_TYPE)] | 
 
 
 
 
 | 272 | typedef union { | 
 
 
 
 
 | 273 | [case(VSS_OBJECT_SNAPSHOT)] VSS_SNAPSHOT_PROP Snap; | 
 
 
 
 
 | 274 | [case(VSS_OBJECT_PROVIDER)] VSS_PROVIDER_PROP Prov; | 
 
 
 
 
 | 275 | [default]; | 
 
 
 
 
 | 276 | } VSS_OBJECT_UNION; | 
 
 
 
 
 | 277 |  | 
 
 
 
 
 | 278 | cpp_quote("") | 
 
 
 
 
 | 279 | typedef struct _VSS_OBJECT_PROP { | 
 
 
 
 
 | 280 | VSS_OBJECT_TYPE Type; | 
 
 
 
 
 | 281 | [switch_is(Type)] VSS_OBJECT_UNION Obj; | 
 
 
 
 
 | 282 | } VSS_OBJECT_PROP, *PVSS_OBJECT_PROP; | 
 
 
 
 
 | 283 |  | 
 
 
 
 
 | 284 | cpp_quote("") | 
 
 
 
 
 | 285 | [ | 
 
 
 
 
 | 286 | object, | 
 
 
 
 
 | 287 | uuid(ae1c7110-2f60-11d3-8a39-00c04f72d8e3), | 
 
 
 
 
 | 288 | pointer_default(unique) | 
 
 
 
 
 | 289 | ] | 
 
 
 
 
 | 290 | interface IVssEnumObject : IUnknown { | 
 
 
 
 
 | 291 | HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] VSS_OBJECT_PROP *rgelt, [out] ULONG *pceltFetched); | 
 
 
 
 
 | 292 | HRESULT Skip([in] ULONG celt); | 
 
 
 
 
 | 293 | HRESULT Reset(); | 
 
 
 
 
 | 294 | HRESULT Clone([in, out] IVssEnumObject **ppenum); | 
 
 
 
 
 | 295 | }; | 
 
 
 
 
 | 296 |  | 
 
 
 
 
 | 297 | cpp_quote("") | 
 
 
 
 
 | 298 | [ | 
 
 
 
 
 | 299 | object, | 
 
 
 
 
 | 300 | uuid(507c37b4-cf5b-4e95-b0af-14eb9767467e), | 
 
 
 
 
 | 301 | pointer_default(unique) | 
 
 
 
 
 | 302 | ] | 
 
 
 
 
 | 303 | interface IVssAsync : IUnknown { | 
 
 
 
 
 | 304 | HRESULT Cancel(); | 
 
 
 
 
 | 305 | HRESULT Wait([in, defaultvalue(0xFFFFFFFF)] DWORD dwMilliseconds); | 
 
 
 
 
 | 306 | HRESULT QueryStatus([out] HRESULT *pHrResult, [in, out, unique] INT *pReserved); | 
 
 
 
 
 | 307 | }; | 
 
 
 
 
 | 308 |  | 
 
 
 
 
 | 309 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") |