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__ 11typedef struct IVssAdmin IVssAdmin; 12#endif /* __IVssAdmin_FWD_DEFINED__ */ 13 14#ifndef __IVssBackupComponents_FWD_DEFINED__ 15#define __IVssBackupComponents_FWD_DEFINED__ 16typedef struct IVssBackupComponents IVssBackupComponents; 17#endif /* __IVssBackupComponents_FWD_DEFINED__ */ 18 19#ifndef __IVssBackupComponentsEx_FWD_DEFINED__ 20#define __IVssBackupComponentsEx_FWD_DEFINED__ 21typedef struct IVssBackupComponentsEx IVssBackupComponentsEx; 22#endif /* __IVssBackupComponentsEx_FWD_DEFINED__ */ 23 24#ifndef __IVssBackupComponentsEx2_FWD_DEFINED__ 25#define __IVssBackupComponentsEx2_FWD_DEFINED__ 26typedef struct IVssBackupComponentsEx2 IVssBackupComponentsEx2; 27#endif /* __IVssBackupComponentsEx2_FWD_DEFINED__ */ 28 29#ifndef __IVssBackupComponentsEx3_FWD_DEFINED__ 30#define __IVssBackupComponentsEx3_FWD_DEFINED__ 31typedef struct IVssBackupComponentsEx3 IVssBackupComponentsEx3; 32#endif /* __IVssBackupComponentsEx3_FWD_DEFINED__ */ 33 34#ifndef __IVssExamineWriterMetadata_FWD_DEFINED__ 35#define __IVssExamineWriterMetadata_FWD_DEFINED__ 36typedef struct IVssExamineWriterMetadata IVssExamineWriterMetadata; 37#endif /* __IVssExamineWriterMetadata_FWD_DEFINED__ */ 38 39#ifndef __IVssExamineWriterMetadataEx_FWD_DEFINED__ 40#define __IVssExamineWriterMetadataEx_FWD_DEFINED__ 41typedef struct IVssExamineWriterMetadataEx IVssExamineWriterMetadataEx; 42#endif /* __IVssExamineWriterMetadataEx_FWD_DEFINED__ */ 43 44#ifndef __IVssExamineWriterMetadataEx2_FWD_DEFINED__ 45#define __IVssExamineWriterMetadataEx2_FWD_DEFINED__ 46typedef struct IVssExamineWriterMetadataEx2 IVssExamineWriterMetadataEx2; 47#endif /* __IVssExamineWriterMetadataEx2_FWD_DEFINED__ */ 48 49#ifndef __IVssWMComponent_FWD_DEFINED__ 50#define __IVssWMComponent_FWD_DEFINED__ 51typedef struct IVssWMComponent IVssWMComponent; 52#endif /* __IVssWMComponent_FWD_DEFINED__ */ 53 54#ifndef __IVssWriterComponentsExt_FWD_DEFINED__ 55#define __IVssWriterComponentsExt_FWD_DEFINED__ 56typedef struct IVssWriterComponentsExt IVssWriterComponentsExt; 57#endif /* __IVssWriterComponentsExt_FWD_DEFINED__ */ 58 59#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ 60#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ 61typedef struct IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt; 62#endif /* __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ */ 63 64#ifndef __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ 65#define __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ 66typedef struct IVssDifferentialSoftwareSnapshotMgmt2 IVssDifferentialSoftwareSnapshotMgmt2; 67#endif /* __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ */ 68 69#ifndef __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ 70#define __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ 71typedef struct IVssDifferentialSoftwareSnapshotMgmt3 IVssDifferentialSoftwareSnapshotMgmt3; 72#endif /* __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ */ 73 74#ifndef __IVssEnumMgmtObject_FWD_DEFINED__ 75#define __IVssEnumMgmtObject_FWD_DEFINED__ 76typedef struct IVssEnumMgmtObject IVssEnumMgmtObject; 77#endif /* __IVssEnumMgmtObject_FWD_DEFINED__ */ 78 79#ifndef __IVssSnapshotMgmt_FWD_DEFINED__ 80#define __IVssSnapshotMgmt_FWD_DEFINED__ 81typedef struct IVssSnapshotMgmt IVssSnapshotMgmt; 82#endif /* __IVssSnapshotMgmt_FWD_DEFINED__ */ 83 84#ifndef __IVssSnapshotMgmt2_FWD_DEFINED__ 85#define __IVssSnapshotMgmt2_FWD_DEFINED__ 86typedef struct IVssSnapshotMgmt2 IVssSnapshotMgmt2; 87#endif /* __IVssSnapshotMgmt2_FWD_DEFINED__ */ 88 89#ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__ 90#define __IVssHardwareSnapshotProvider_FWD_DEFINED__ 91typedef struct IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider; 92#endif /* __IVssHardwareSnapshotProvider_FWD_DEFINED__ */ 93 94#ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 95#define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 96typedef struct IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx; 97#endif /* __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ */ 98 99#ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 100#define __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 101typedef struct IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet; 102#endif /* __IVssProviderCreateSnapshotSet_FWD_DEFINED__ */ 103 104#ifndef __IVssProviderNotifications_FWD_DEFINED__ 105#define __IVssProviderNotifications_FWD_DEFINED__ 106typedef struct IVssProviderNotifications IVssProviderNotifications; 107#endif /* __IVssProviderNotifications_FWD_DEFINED__ */ 108 109#ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 110#define __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 111typedef struct IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider; 112#endif /* __IVssSoftwareSnapshotProvider_FWD_DEFINED__ */ 113 114#ifndef __IVssAsync_FWD_DEFINED__ 115#define __IVssAsync_FWD_DEFINED__ 116typedef struct IVssAsync IVssAsync; 117#endif /* __IVssAsync_FWD_DEFINED__ */ 118 119#ifndef __IVssEnumObject_FWD_DEFINED__ 120#define __IVssEnumObject_FWD_DEFINED__ 121typedef struct IVssEnumObject IVssEnumObject; 122#endif /* __IVssEnumObject_FWD_DEFINED__ */ 123 124#ifndef __IVssCreateExpressWriterMetadata_FWD_DEFINED__ 125#define __IVssCreateExpressWriterMetadata_FWD_DEFINED__ 126typedef struct IVssCreateExpressWriterMetadata IVssCreateExpressWriterMetadata; 127#endif /* __IVssCreateExpressWriterMetadata_FWD_DEFINED__ */ 128 129#ifndef __IVssCreateWriterMetadata_FWD_DEFINED__ 130#define __IVssCreateWriterMetadata_FWD_DEFINED__ 131typedef struct IVssCreateWriterMetadata IVssCreateWriterMetadata; 132#endif /* __IVssCreateWriterMetadata_FWD_DEFINED__ */ 133 134#ifndef __IVssCreateWriterMetadataEx_FWD_DEFINED__ 135#define __IVssCreateWriterMetadataEx_FWD_DEFINED__ 136typedef struct IVssCreateWriterMetadataEx IVssCreateWriterMetadataEx; 137#endif /* __IVssCreateWriterMetadataEx_FWD_DEFINED__ */ 138 139#ifndef __IVssExpressWriter_FWD_DEFINED__ 140#define __IVssExpressWriter_FWD_DEFINED__ 141typedef struct IVssExpressWriter IVssExpressWriter; 142#endif /* __IVssExpressWriter_FWD_DEFINED__ */ 143 144#ifndef __IVssWriterComponents_FWD_DEFINED__ 145#define __IVssWriterComponents_FWD_DEFINED__ 146typedef struct IVssWriterComponents IVssWriterComponents; 147#endif /* __IVssWriterComponents_FWD_DEFINED__ */ 148 149#ifndef __IVssComponent_FWD_DEFINED__ 150#define __IVssComponent_FWD_DEFINED__ 151typedef struct IVssComponent IVssComponent; 152#endif /* __IVssComponent_FWD_DEFINED__ */ 153 154#ifndef __IVssComponentEx_FWD_DEFINED__ 155#define __IVssComponentEx_FWD_DEFINED__ 156typedef struct IVssComponentEx IVssComponentEx; 157#endif /* __IVssComponentEx_FWD_DEFINED__ */ 158 159#ifndef __IVssComponentEx2_FWD_DEFINED__ 160#define __IVssComponentEx2_FWD_DEFINED__ 161typedef struct IVssComponentEx2 IVssComponentEx2; 162#endif /* __IVssComponentEx2_FWD_DEFINED__ */ 163 164#ifndef __IVssWMDependency_FWD_DEFINED__ 165#define __IVssWMDependency_FWD_DEFINED__ 166typedef struct IVssWMDependency IVssWMDependency; 167#endif /* __IVssWMDependency_FWD_DEFINED__ */ 168 169#ifndef __IVssWMFiledesc_FWD_DEFINED__ 170#define __IVssWMFiledesc_FWD_DEFINED__ 171typedef struct IVssWMFiledesc IVssWMFiledesc; 172#endif /* __IVssWMFiledesc_FWD_DEFINED__ */ 173 174/* http://msdn.microsoft.com/en-us/library/aa384641%28VS.85%29.aspx */ 175typedef WCHAR *VSS_PWSZ; 176typedef LONGLONG VSS_TIMESTAMP; 177typedef GUID VSS_ID; 178 179#ifndef __cplusplus 180typedef char bool; 181#endif 182 183typedef 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 191typedef 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 204typedef 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 211typedef enum _VSS_SNAPSHOT_COMPATIBILITY { 212 VSS_SC_DISABLE_DEFRAG = 0x1, 213 VSS_SC_DISABLE_CONTENTINDEX = 0x2 214} VSS_SNAPSHOT_COMPATIBILITY; 215 216typedef 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 236typedef 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 257typedef 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 267typedef 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 287typedef 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 304typedef 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 315typedef 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 334typedef 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 347typedef 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 358typedef 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 365typedef 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) 375typedef 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 381typedef 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 397typedef 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 406typedef 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 413typedef 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 426DECLARE_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 459DECLARE_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