| 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) */") |