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 #ifndef _INC_VSS 7 #define _INC_VSS 8 9 #ifndef __IVssAdmin_FWD_DEFINED__ 10 #define __IVssAdmin_FWD_DEFINED__ 11 typedef struct IVssAdmin IVssAdmin; 12 #endif /* __IVssAdmin_FWD_DEFINED__ */ 13 14 #ifndef __IVssBackupComponents_FWD_DEFINED__ 15 #define __IVssBackupComponents_FWD_DEFINED__ 16 typedef struct IVssBackupComponents IVssBackupComponents; 17 #endif /* __IVssBackupComponents_FWD_DEFINED__ */ 18 19 #ifndef __IVssBackupComponentsEx_FWD_DEFINED__ 20 #define __IVssBackupComponentsEx_FWD_DEFINED__ 21 typedef struct IVssBackupComponentsEx IVssBackupComponentsEx; 22 #endif /* __IVssBackupComponentsEx_FWD_DEFINED__ */ 23 24 #ifndef __IVssBackupComponentsEx2_FWD_DEFINED__ 25 #define __IVssBackupComponentsEx2_FWD_DEFINED__ 26 typedef struct IVssBackupComponentsEx2 IVssBackupComponentsEx2; 27 #endif /* __IVssBackupComponentsEx2_FWD_DEFINED__ */ 28 29 #ifndef __IVssBackupComponentsEx3_FWD_DEFINED__ 30 #define __IVssBackupComponentsEx3_FWD_DEFINED__ 31 typedef struct IVssBackupComponentsEx3 IVssBackupComponentsEx3; 32 #endif /* __IVssBackupComponentsEx3_FWD_DEFINED__ */ 33 34 #ifndef __IVssExamineWriterMetadata_FWD_DEFINED__ 35 #define __IVssExamineWriterMetadata_FWD_DEFINED__ 36 typedef struct IVssExamineWriterMetadata IVssExamineWriterMetadata; 37 #endif /* __IVssExamineWriterMetadata_FWD_DEFINED__ */ 38 39 #ifndef __IVssExamineWriterMetadataEx_FWD_DEFINED__ 40 #define __IVssExamineWriterMetadataEx_FWD_DEFINED__ 41 typedef struct IVssExamineWriterMetadataEx IVssExamineWriterMetadataEx; 42 #endif /* __IVssExamineWriterMetadataEx_FWD_DEFINED__ */ 43 44 #ifndef __IVssExamineWriterMetadataEx2_FWD_DEFINED__ 45 #define __IVssExamineWriterMetadataEx2_FWD_DEFINED__ 46 typedef struct IVssExamineWriterMetadataEx2 IVssExamineWriterMetadataEx2; 47 #endif /* __IVssExamineWriterMetadataEx2_FWD_DEFINED__ */ 48 49 #ifndef __IVssWMComponent_FWD_DEFINED__ 50 #define __IVssWMComponent_FWD_DEFINED__ 51 typedef struct IVssWMComponent IVssWMComponent; 52 #endif /* __IVssWMComponent_FWD_DEFINED__ */ 53 54 #ifndef __IVssWriterComponentsExt_FWD_DEFINED__ 55 #define __IVssWriterComponentsExt_FWD_DEFINED__ 56 typedef struct IVssWriterComponentsExt IVssWriterComponentsExt; 57 #endif /* __IVssWriterComponentsExt_FWD_DEFINED__ */ 58 59 #ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ 60 #define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ 61 typedef struct IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt; 62 #endif /* __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ */ 63 64 #ifndef __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ 65 #define __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ 66 typedef struct IVssDifferentialSoftwareSnapshotMgmt2 IVssDifferentialSoftwareSnapshotMgmt2; 67 #endif /* __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ */ 68 69 #ifndef __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ 70 #define __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ 71 typedef struct IVssDifferentialSoftwareSnapshotMgmt3 IVssDifferentialSoftwareSnapshotMgmt3; 72 #endif /* __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ */ 73 74 #ifndef __IVssEnumMgmtObject_FWD_DEFINED__ 75 #define __IVssEnumMgmtObject_FWD_DEFINED__ 76 typedef struct IVssEnumMgmtObject IVssEnumMgmtObject; 77 #endif /* __IVssEnumMgmtObject_FWD_DEFINED__ */ 78 79 #ifndef __IVssSnapshotMgmt_FWD_DEFINED__ 80 #define __IVssSnapshotMgmt_FWD_DEFINED__ 81 typedef struct IVssSnapshotMgmt IVssSnapshotMgmt; 82 #endif /* __IVssSnapshotMgmt_FWD_DEFINED__ */ 83 84 #ifndef __IVssSnapshotMgmt2_FWD_DEFINED__ 85 #define __IVssSnapshotMgmt2_FWD_DEFINED__ 86 typedef struct IVssSnapshotMgmt2 IVssSnapshotMgmt2; 87 #endif /* __IVssSnapshotMgmt2_FWD_DEFINED__ */ 88 89 #ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__ 90 #define __IVssHardwareSnapshotProvider_FWD_DEFINED__ 91 typedef struct IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider; 92 #endif /* __IVssHardwareSnapshotProvider_FWD_DEFINED__ */ 93 94 #ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 95 #define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 96 typedef struct IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx; 97 #endif /* __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ */ 98 99 #ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 100 #define __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 101 typedef struct IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet; 102 #endif /* __IVssProviderCreateSnapshotSet_FWD_DEFINED__ */ 103 104 #ifndef __IVssProviderNotifications_FWD_DEFINED__ 105 #define __IVssProviderNotifications_FWD_DEFINED__ 106 typedef struct IVssProviderNotifications IVssProviderNotifications; 107 #endif /* __IVssProviderNotifications_FWD_DEFINED__ */ 108 109 #ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 110 #define __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 111 typedef struct IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider; 112 #endif /* __IVssSoftwareSnapshotProvider_FWD_DEFINED__ */ 113 114 #ifndef __IVssAsync_FWD_DEFINED__ 115 #define __IVssAsync_FWD_DEFINED__ 116 typedef struct IVssAsync IVssAsync; 117 #endif /* __IVssAsync_FWD_DEFINED__ */ 118 119 #ifndef __IVssEnumObject_FWD_DEFINED__ 120 #define __IVssEnumObject_FWD_DEFINED__ 121 typedef struct IVssEnumObject IVssEnumObject; 122 #endif /* __IVssEnumObject_FWD_DEFINED__ */ 123 124 #ifndef __IVssCreateExpressWriterMetadata_FWD_DEFINED__ 125 #define __IVssCreateExpressWriterMetadata_FWD_DEFINED__ 126 typedef struct IVssCreateExpressWriterMetadata IVssCreateExpressWriterMetadata; 127 #endif /* __IVssCreateExpressWriterMetadata_FWD_DEFINED__ */ 128 129 #ifndef __IVssCreateWriterMetadata_FWD_DEFINED__ 130 #define __IVssCreateWriterMetadata_FWD_DEFINED__ 131 typedef struct IVssCreateWriterMetadata IVssCreateWriterMetadata; 132 #endif /* __IVssCreateWriterMetadata_FWD_DEFINED__ */ 133 134 #ifndef __IVssCreateWriterMetadataEx_FWD_DEFINED__ 135 #define __IVssCreateWriterMetadataEx_FWD_DEFINED__ 136 typedef struct IVssCreateWriterMetadataEx IVssCreateWriterMetadataEx; 137 #endif /* __IVssCreateWriterMetadataEx_FWD_DEFINED__ */ 138 139 #ifndef __IVssExpressWriter_FWD_DEFINED__ 140 #define __IVssExpressWriter_FWD_DEFINED__ 141 typedef struct IVssExpressWriter IVssExpressWriter; 142 #endif /* __IVssExpressWriter_FWD_DEFINED__ */ 143 144 #ifndef __IVssWriterComponents_FWD_DEFINED__ 145 #define __IVssWriterComponents_FWD_DEFINED__ 146 typedef struct IVssWriterComponents IVssWriterComponents; 147 #endif /* __IVssWriterComponents_FWD_DEFINED__ */ 148 149 #ifndef __IVssComponent_FWD_DEFINED__ 150 #define __IVssComponent_FWD_DEFINED__ 151 typedef struct IVssComponent IVssComponent; 152 #endif /* __IVssComponent_FWD_DEFINED__ */ 153 154 #ifndef __IVssComponentEx_FWD_DEFINED__ 155 #define __IVssComponentEx_FWD_DEFINED__ 156 typedef struct IVssComponentEx IVssComponentEx; 157 #endif /* __IVssComponentEx_FWD_DEFINED__ */ 158 159 #ifndef __IVssComponentEx2_FWD_DEFINED__ 160 #define __IVssComponentEx2_FWD_DEFINED__ 161 typedef struct IVssComponentEx2 IVssComponentEx2; 162 #endif /* __IVssComponentEx2_FWD_DEFINED__ */ 163 164 #ifndef __IVssWMDependency_FWD_DEFINED__ 165 #define __IVssWMDependency_FWD_DEFINED__ 166 typedef struct IVssWMDependency IVssWMDependency; 167 #endif /* __IVssWMDependency_FWD_DEFINED__ */ 168 169 #ifndef __IVssWMFiledesc_FWD_DEFINED__ 170 #define __IVssWMFiledesc_FWD_DEFINED__ 171 typedef struct IVssWMFiledesc IVssWMFiledesc; 172 #endif /* __IVssWMFiledesc_FWD_DEFINED__ */ 173 174 /* http://msdn.microsoft.com/en-us/library/aa384641%28VS.85%29.aspx */ 175 typedef WCHAR *VSS_PWSZ; 176 typedef LONGLONG VSS_TIMESTAMP; 177 typedef GUID VSS_ID; 178 179 #ifndef __cplusplus 180 typedef char bool; 181 #endif 182 183 typedef enum _VSS_APPLICATION_LEVEL { 184 VSS_APP_UNKNOWN = 0, 185 VSS_APP_SYSTEM = 1, 186 VSS_APP_BACK_END = 2, 187 VSS_APP_FRONT_END = 3, 188 VSS_APP_AUTO = -1 189 } VSS_APPLICATION_LEVEL, *PVSS_APPLICATION_LEVEL; 190 191 typedef enum _VSS_BACKUP_TYPE { 192 VSS_BT_UNDEFINED = 0, 193 VSS_BT_FULL = 1, 194 VSS_BT_INCREMENTAL = 2, 195 VSS_BT_DIFFERENTIAL = 3, 196 VSS_BT_LOG = 4, 197 VSS_BT_COPY = 5, 198 VSS_BT_OTHER = 6 199 } VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE; 200 201 /* Reserved for future use */ 202 /*typedef enum _VSS_FASTRECOVERY_OPTIONS;*/ 203 204 typedef enum _VSS_PROVIDER_TYPE { 205 VSS_PROV_UNKNOWN = 0, 206 VSS_PROV_SYSTEM = 1, 207 VSS_PROV_SOFTWARE = 2, 208 VSS_PROV_HARDWARE = 3 209 } VSS_PROVIDER_TYPE, *PVSS_PROVIDER_TYPE; 210 211 typedef enum _VSS_SNAPSHOT_COMPATIBILITY { 212 VSS_SC_DISABLE_DEFRAG = 0x1, 213 VSS_SC_DISABLE_CONTENTINDEX = 0x2 214 } VSS_SNAPSHOT_COMPATIBILITY; 215 216 typedef enum _VSS_SNAPSHOT_STATE { 217 VSS_SS_UNKNOWN = 0x00, 218 VSS_SS_PREPARING = 0x01, 219 VSS_SS_PROCESSING_PREPARE = 0x02, 220 VSS_SS_PREPARED = 0x03, 221 VSS_SS_PROCESSING_PRECOMMIT = 0x04, 222 VSS_SS_PRECOMMITTED = 0x05, 223 VSS_SS_PROCESSING_COMMIT = 0x06, 224 VSS_SS_COMMITTED = 0x07, 225 VSS_SS_PROCESSING_POSTCOMMIT = 0x08, 226 VSS_SS_PROCESSING_PREFINALCOMMIT = 0x09, 227 VSS_SS_PREFINALCOMMITTED = 0x0a, 228 VSS_SS_PROCESSING_POSTFINALCOMMIT = 0x0b, 229 VSS_SS_CREATED = 0x0c, 230 VSS_SS_ABORTED = 0x0d, 231 VSS_SS_DELETED = 0x0e, 232 VSS_SS_POSTCOMMITTED = 0x0f, 233 VSS_SS_COUNT = 0x10 234 } VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE; 235 236 typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES { 237 VSS_VOLSNAP_ATTR_PERSISTENT = 0x00000001, 238 VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x00000002, 239 VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE = 0x00000004, 240 VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE = 0x00000008, 241 VSS_VOLSNAP_ATTR_NO_WRITERS = 0x00000010, 242 VSS_VOLSNAP_ATTR_TRANSPORTABLE = 0x00000020, 243 VSS_VOLSNAP_ATTR_NOT_SURFACED = 0x00000040, 244 VSS_VOLSNAP_ATTR_NOT_TRANSACTED = 0x00000080, 245 VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED = 0x00010000, 246 VSS_VOLSNAP_ATTR_DIFFERENTIAL = 0x00020000, 247 VSS_VOLSNAP_ATTR_PLEX = 0x00040000, 248 VSS_VOLSNAP_ATTR_IMPORTED = 0x00080000, 249 VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY = 0x00100000, 250 VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY = 0x00200000, 251 VSS_VOLSNAP_ATTR_AUTORECOVER = 0x00400000, 252 VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY = 0x00800000, 253 VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0x01000000, 254 VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x02000000 255 } VSS_VOLUME_SNAPSHOT_ATTRIBUTES, *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES; 256 257 typedef enum _VSS_SNAPSHOT_CONTEXT { 258 VSS_CTX_BACKUP = 0, 259 VSS_CTX_FILE_SHARE_BACKUP = VSS_VOLSNAP_ATTR_NO_WRITERS, 260 VSS_CTX_NAS_ROLLBACK = ( ( VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE ) | VSS_VOLSNAP_ATTR_NO_WRITERS ), 261 VSS_CTX_APP_ROLLBACK = ( VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE ), 262 VSS_CTX_CLIENT_ACCESSIBLE = ( ( ( VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE ) | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE ) | VSS_VOLSNAP_ATTR_NO_WRITERS ), 263 VSS_CTX_CLIENT_ACCESSIBLE_WRITERS = ( ( VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE ) | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE ), 264 VSS_CTX_ALL = 0xffffffff 265 } VSS_SNAPSHOT_CONTEXT, *PVSS_SNAPSHOT_CONTEXT; 266 267 typedef enum _VSS_WRITER_STATE { 268 VSS_WS_UNKNOWN = 0, 269 VSS_WS_STABLE = 1, 270 VSS_WS_WAITING_FOR_FREEZE = 2, 271 VSS_WS_WAITING_FOR_THAW = 3, 272 VSS_WS_WAITING_FOR_POST_SNAPSHOT = 4, 273 VSS_WS_WAITING_FOR_BACKUP_COMPLETE = 5, 274 VSS_WS_FAILED_AT_IDENTIFY = 6, 275 VSS_WS_FAILED_AT_PREPARE_BACKUP = 7, 276 VSS_WS_FAILED_AT_PREPARE_SNAPSHOT = 8, 277 VSS_WS_FAILED_AT_FREEZE = 9, 278 VSS_WS_FAILED_AT_THAW = 10, 279 VSS_WS_FAILED_AT_POST_SNAPSHOT = 11, 280 VSS_WS_FAILED_AT_BACKUP_COMPLETE = 12, 281 VSS_WS_FAILED_AT_PRE_RESTORE = 13, 282 VSS_WS_FAILED_AT_POST_RESTORE = 14, 283 VSS_WS_FAILED_AT_BACKUPSHUTDOWN = 15, 284 VSS_WS_COUNT = 16 285 } VSS_WRITER_STATE, *PVSS_WRITER_STATE; 286 287 typedef enum _VSS_SNAPSHOT_PROPERTY_ID { 288 VSS_SPROPID_UNKNOWN = 0x00000000, 289 VSS_SPROPID_SNAPSHOT_ID = 0x00000001, 290 VSS_SPROPID_SNAPSHOT_SET_ID = 0x00000002, 291 VSS_SPROPID_SNAPSHOTS_COUNT = 0x00000003, 292 VSS_SPROPID_SNAPSHOT_DEVICE = 0x00000004, 293 VSS_SPROPID_ORIGINAL_VOLUME = 0x00000005, 294 VSS_SPROPID_ORIGINATING_MACHINE = 0x00000006, 295 VSS_SPROPID_SERVICE_MACHINE = 0x00000007, 296 VSS_SPROPID_EXPOSED_NAME = 0x00000008, 297 VSS_SPROPID_EXPOSED_PATH = 0x00000009, 298 VSS_SPROPID_PROVIDER_ID = 0x0000000A, 299 VSS_SPROPID_SNAPSHOT_ATTRIBUTES = 0x0000000B, 300 VSS_SPROPID_CREATION_TIMESTAMP = 0x0000000C, 301 VSS_SPROPID_STATUS = 0x0000000D 302 } VSS_SNAPSHOT_PROPERTY_ID, *PVSS_SNAPSHOT_PROPERTY_ID; 303 304 typedef enum _VSS_OBJECT_TYPE { 305 VSS_OBJECT_UNKNOWN = 0, 306 VSS_OBJECT_NONE = 1, 307 VSS_OBJECT_SNAPSHOT_SET = 2, 308 VSS_OBJECT_SNAPSHOT = 3, 309 VSS_OBJECT_PROVIDER = 4, 310 VSS_OBJECT_TYPE_COUNT = 5 311 } VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE; 312 313 #if (_WIN32_WINNT >= 0x0600) 314 315 typedef enum VSS_BACKUP_SCHEMA { 316 VSS_BS_UNDEFINED = 0x00000000, 317 VSS_BS_DIFFERENTIAL = 0x00000001, 318 VSS_BS_INCREMENTAL = 0x00000002, 319 VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x00000004, 320 VSS_BS_LOG = 0x00000008, 321 VSS_BS_COPY = 0x00000010, 322 VSS_BS_TIMESTAMPED = 0x00000020, 323 VSS_BS_LAST_MODIFY = 0x00000040, 324 VSS_BS_LSN = 0x00000080, 325 VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x00000100, 326 VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x00000200, 327 VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x00000400, 328 VSS_BS_ROLLFORWARD_RESTORE = 0x00001000, 329 VSS_BS_RESTORE_RENAME = 0x00002000, 330 VSS_BS_AUTHORITATIVE_RESTORE = 0x00004000, 331 VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x00008000 332 } VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA; 333 334 typedef enum _VSS_FILE_SPEC_BACKUP_TYPE { 335 VSS_FSBT_FULL_BACKUP_REQUIRED = 0x00000001, 336 VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x00000002, 337 VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x00000004, 338 VSS_FSBT_LOG_BACKUP_REQUIRED = 0x00000008, 339 VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x00000100, 340 VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x00000200, 341 VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x00000400, 342 VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x00000800, 343 VSS_FSBT_ALL_BACKUP_REQUIRED = 0x0000000F, 344 VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0x00000F00 345 } VSS_FILE_SPEC_BACKUP_TYPE, *PVSS_FILE_SPEC_BACKUP_TYPE; 346 347 typedef enum _VSS_HARDWARE_OPTIONS { 348 VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001, 349 VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002, 350 VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004, 351 VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008, 352 VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100, 353 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200, 354 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400, 355 VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800 356 } VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS; 357 358 typedef enum _VSS_RESTORE_TYPE { 359 VSS_RTYPE_UNDEFINED = 0, 360 VSS_RTYPE_BY_COPY = 1, 361 VSS_RTYPE_IMPORT = 2, 362 VSS_RTYPE_OTHER = 3 363 } VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE; 364 365 typedef enum _VSS_ROLLFORWARD_TYPE { 366 VSS_RF_UNDEFINED = 0, 367 VSS_RF_NONE = 1, 368 VSS_RF_ALL = 2, 369 VSS_RF_PARTIAL = 3 370 } VSS_ROLLFORWARD_TYPE, *PVSS_ROLLFORWARD_TYPE; 371 372 #endif /*(_WIN32_WINNT >= 0x0600)*/ 373 374 #if (_WIN32_WINNT >= 0x0601) 375 typedef enum _VSS_RECOVERY_OPTIONS { 376 VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x00000100, 377 VSS_RECOVERY_NO_VOLUME_CHECK = 0x00000200 378 } VSS_RECOVERY_OPTIONS; 379 #endif /*(_WIN32_WINNT >= 0x0601)*/ 380 381 typedef struct _VSS_SNAPSHOT_PROP { 382 VSS_ID m_SnapshotId; 383 VSS_ID m_SnapshotSetId; 384 LONG m_lSnapshotsCount; 385 VSS_PWSZ m_pwszSnapshotDeviceObject; 386 VSS_PWSZ m_pwszOriginalVolumeName; 387 VSS_PWSZ m_pwszOriginatingMachine; 388 VSS_PWSZ m_pwszServiceMachine; 389 VSS_PWSZ m_pwszExposedName; 390 VSS_PWSZ m_pwszExposedPath; 391 VSS_ID m_ProviderId; 392 LONG m_lSnapshotAttributes; 393 VSS_TIMESTAMP m_tsCreationTimestamp; 394 VSS_SNAPSHOT_STATE m_eStatus; 395 } VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP; 396 397 typedef struct _VSS_PROVIDER_PROP { 398 VSS_ID m_ProviderId; 399 VSS_PWSZ m_pwszProviderName; 400 VSS_PROVIDER_TYPE m_eProviderType; 401 VSS_PWSZ m_pwszProviderVersion; 402 VSS_ID m_ProviderVersionId; 403 CLSID m_ClassId; 404 } VSS_PROVIDER_PROP, *PVSS_PROVIDER_PROP; 405 406 typedef union _VSS_OBJECT_UNION { 407 /*[case(VSS_OBJECT_SNAPSHOT)]*/ 408 VSS_SNAPSHOT_PROP Snap; 409 /*[case(VSS_OBJECT_PROVIDER)]*/ 410 VSS_PROVIDER_PROP Prov; 411 } VSS_OBJECT_UNION; 412 413 typedef struct _VSS_OBJECT_PROP { 414 VSS_OBJECT_TYPE Type; 415 VSS_OBJECT_UNION Obj; 416 } VSS_OBJECT_PROP, *PVSS_OBJECT_PROP; 417 418 #undef INTERFACE 419 #define INTERFACE IVssAsync 420 /* IID_IVssAsync is defined as 507C37B4-CF5B-4e95-B0AF-14EB9767467E */ 421 #ifdef __GNUC__ 422 #warning COM interfaces layout in this header has not been verified. 423 #warning COM interfaces with incorrect layout may not work at all. 424 __MINGW_BROKEN_INTERFACE(INTERFACE) 425 #endif 426 DECLARE_INTERFACE_(IVssAsync,IUnknown) 427 { 428 BEGIN_INTERFACE 429 430 /* IUnknown methods */ 431 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 432 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 433 STDMETHOD_(ULONG, Release)(THIS) PURE; 434 435 /* IVssAsync methods */ 436 STDMETHOD_(HRESULT,Cancel)(THIS) PURE; 437 STDMETHOD_(HRESULT,Wait)(THIS_ DWORD dwMilliseconds) PURE; 438 STDMETHOD_(HRESULT,QueryStatus)(THIS_ HRESULT *pHrResult,INT *pReserved) PURE; 439 440 END_INTERFACE 441 }; 442 #ifdef COBJMACROS 443 #define IVssAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 444 #define IVssAsync_AddRef(This) (This)->lpVtbl->AddRef(This) 445 #define IVssAsync_Release(This) (This)->lpVtbl->Release(This) 446 #define IVssAsync_Cancel() (This)->lpVtbl->Cancel(This) 447 #define IVssAsync_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds) 448 #define IVssAsync_QueryStatus(This,pHrResult,pReserved) (This)->lpVtbl->QueryStatus(This,pHrResult,pReserved) 449 #endif /*COBJMACROS*/ 450 451 #undef INTERFACE 452 #define INTERFACE IVssEnumObject 453 /* IID_IVssEnumObject is defined as AE1C7110-2F60-11d3-8A39-00C04F72D8E3 */ 454 #ifdef __GNUC__ 455 #warning COM interfaces layout in this header has not been verified. 456 #warning COM interfaces with incorrect layout may not work at all. 457 __MINGW_BROKEN_INTERFACE(INTERFACE) 458 #endif 459 DECLARE_INTERFACE_(IVssEnumObject,IUnknown) 460 { 461 BEGIN_INTERFACE 462 463 /* IUnknown methods */ 464 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 465 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 466 STDMETHOD_(ULONG, Release)(THIS) PURE; 467 468 /* IVssEnumObject methods */ 469 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt,VSS_OBJECT_PROP *rgelt,ULONG *pceltFetched) PURE; 470 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; 471 STDMETHOD_(HRESULT,Reset)(THIS) PURE; 472 STDMETHOD_(HRESULT,Clone)(THIS_ IVssEnumObject **ppEnum) PURE; 473 474 END_INTERFACE 475 }; 476 #ifdef COBJMACROS 477 #define IVssEnumObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 478 #define IVssEnumObject_AddRef(This) (This)->lpVtbl->AddRef(This) 479 #define IVssEnumObject_Release(This) (This)->lpVtbl->Release(This) 480 #define IVssEnumObject_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) 481 #define IVssEnumObject_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) 482 #define IVssEnumObject_Reset() (This)->lpVtbl->Reset(This) 483 #define IVssEnumObject_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) 484 #endif /*COBJMACROS*/ 485 486 #include <vswriter.h> 487 #include <vsbackup.h> 488 489 #endif /*_INC_VSS*/ 490