vsprov.h (50025B) - Raw
1 /*** Autogenerated by WIDL 10.4 from include/vsprov.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __vsprov_h__ 17 #define __vsprov_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 22 #define __IVssSoftwareSnapshotProvider_FWD_DEFINED__ 23 typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider; 24 #ifdef __cplusplus 25 interface IVssSoftwareSnapshotProvider; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 30 #define __IVssProviderCreateSnapshotSet_FWD_DEFINED__ 31 typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet; 32 #ifdef __cplusplus 33 interface IVssProviderCreateSnapshotSet; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IVssProviderNotifications_FWD_DEFINED__ 38 #define __IVssProviderNotifications_FWD_DEFINED__ 39 typedef interface IVssProviderNotifications IVssProviderNotifications; 40 #ifdef __cplusplus 41 interface IVssProviderNotifications; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__ 46 #define __IVssHardwareSnapshotProvider_FWD_DEFINED__ 47 typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider; 48 #ifdef __cplusplus 49 interface IVssHardwareSnapshotProvider; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 54 #define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ 55 typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx; 56 #ifdef __cplusplus 57 interface IVssHardwareSnapshotProviderEx; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__ 62 #define __IVssFileShareSnapshotProvider_FWD_DEFINED__ 63 typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider; 64 #ifdef __cplusplus 65 interface IVssFileShareSnapshotProvider; 66 #endif /* __cplusplus */ 67 #endif 68 69 /* Headers for imported files */ 70 71 #include <oaidl.h> 72 #include <ocidl.h> 73 #include <vss.h> 74 #include <vdslun.h> 75 76 #ifdef __cplusplus 77 extern "C" { 78 #endif 79 80 #include <winapifamily.h> 81 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 82 #ifndef __IVssSnapshotProvider_FWD_DEFINED__ 83 #define __IVssSnapshotProvider_FWD_DEFINED__ 84 typedef interface IVssSnapshotProvider IVssSnapshotProvider; 85 #ifdef __cplusplus 86 interface IVssSnapshotProvider; 87 #endif /* __cplusplus */ 88 #endif 89 90 #ifndef __IVssProviderNotifications_FWD_DEFINED__ 91 #define __IVssProviderNotifications_FWD_DEFINED__ 92 typedef interface IVssProviderNotifications IVssProviderNotifications; 93 #ifdef __cplusplus 94 interface IVssProviderNotifications; 95 #endif /* __cplusplus */ 96 #endif 97 98 typedef VSS_PWSZ *PVSS_PWSZ; 99 /***************************************************************************** 100 * IVssSoftwareSnapshotProvider interface 101 */ 102 #ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ 103 #define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ 104 105 DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff); 106 #if defined(__cplusplus) && !defined(CINTERFACE) 107 MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff") 108 IVssSoftwareSnapshotProvider : public IUnknown 109 { 110 virtual HRESULT STDMETHODCALLTYPE SetContext( 111 LONG lContext) = 0; 112 113 virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( 114 VSS_ID SnapshotId, 115 VSS_SNAPSHOT_PROP *pProp) = 0; 116 117 virtual HRESULT STDMETHODCALLTYPE Query( 118 VSS_ID QueriedObjectId, 119 VSS_OBJECT_TYPE eQueriedObjectType, 120 VSS_OBJECT_TYPE eReturnedObjectsType, 121 IVssEnumObject **ppEnum) = 0; 122 123 virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( 124 VSS_ID SourceObjectId, 125 VSS_OBJECT_TYPE eSourceObjectType, 126 WINBOOL bForceDelete, 127 LONG *plDeletedSnapshots, 128 VSS_ID *pNondeletedSnapshotID) = 0; 129 130 virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( 131 VSS_ID SnapshotSetId, 132 VSS_ID SnapshotId, 133 VSS_PWSZ pwszVolumeName, 134 LONG lNewContext) = 0; 135 136 virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported( 137 VSS_PWSZ pwszVolumeName, 138 WINBOOL *pbSupportedByThisProvider) = 0; 139 140 virtual HRESULT STDMETHODCALLTYPE IsVolumeSnapshotted( 141 VSS_PWSZ pwszVolumeName, 142 WINBOOL *pbSnapshotsPresent, 143 LONG *plSnapshotCompatibility) = 0; 144 145 virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( 146 VSS_ID SnapshotId, 147 VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, 148 VARIANT vProperty) = 0; 149 150 virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot( 151 VSS_ID SnapshotId) = 0; 152 153 virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus( 154 VSS_PWSZ pwszVolume, 155 IVssAsync **ppAsync) = 0; 156 157 }; 158 #ifdef __CRT_UUID_DECL 159 __CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff) 160 #endif 161 #else 162 typedef struct IVssSoftwareSnapshotProviderVtbl { 163 BEGIN_INTERFACE 164 165 /*** IUnknown methods ***/ 166 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 167 IVssSoftwareSnapshotProvider *This, 168 REFIID riid, 169 void **ppvObject); 170 171 ULONG (STDMETHODCALLTYPE *AddRef)( 172 IVssSoftwareSnapshotProvider *This); 173 174 ULONG (STDMETHODCALLTYPE *Release)( 175 IVssSoftwareSnapshotProvider *This); 176 177 /*** IVssSoftwareSnapshotProvider methods ***/ 178 HRESULT (STDMETHODCALLTYPE *SetContext)( 179 IVssSoftwareSnapshotProvider *This, 180 LONG lContext); 181 182 HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( 183 IVssSoftwareSnapshotProvider *This, 184 VSS_ID SnapshotId, 185 VSS_SNAPSHOT_PROP *pProp); 186 187 HRESULT (STDMETHODCALLTYPE *Query)( 188 IVssSoftwareSnapshotProvider *This, 189 VSS_ID QueriedObjectId, 190 VSS_OBJECT_TYPE eQueriedObjectType, 191 VSS_OBJECT_TYPE eReturnedObjectsType, 192 IVssEnumObject **ppEnum); 193 194 HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( 195 IVssSoftwareSnapshotProvider *This, 196 VSS_ID SourceObjectId, 197 VSS_OBJECT_TYPE eSourceObjectType, 198 WINBOOL bForceDelete, 199 LONG *plDeletedSnapshots, 200 VSS_ID *pNondeletedSnapshotID); 201 202 HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( 203 IVssSoftwareSnapshotProvider *This, 204 VSS_ID SnapshotSetId, 205 VSS_ID SnapshotId, 206 VSS_PWSZ pwszVolumeName, 207 LONG lNewContext); 208 209 HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( 210 IVssSoftwareSnapshotProvider *This, 211 VSS_PWSZ pwszVolumeName, 212 WINBOOL *pbSupportedByThisProvider); 213 214 HRESULT (STDMETHODCALLTYPE *IsVolumeSnapshotted)( 215 IVssSoftwareSnapshotProvider *This, 216 VSS_PWSZ pwszVolumeName, 217 WINBOOL *pbSnapshotsPresent, 218 LONG *plSnapshotCompatibility); 219 220 HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( 221 IVssSoftwareSnapshotProvider *This, 222 VSS_ID SnapshotId, 223 VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, 224 VARIANT vProperty); 225 226 HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( 227 IVssSoftwareSnapshotProvider *This, 228 VSS_ID SnapshotId); 229 230 HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( 231 IVssSoftwareSnapshotProvider *This, 232 VSS_PWSZ pwszVolume, 233 IVssAsync **ppAsync); 234 235 END_INTERFACE 236 } IVssSoftwareSnapshotProviderVtbl; 237 238 interface IVssSoftwareSnapshotProvider { 239 CONST_VTBL IVssSoftwareSnapshotProviderVtbl* lpVtbl; 240 }; 241 242 #ifdef COBJMACROS 243 #ifndef WIDL_C_INLINE_WRAPPERS 244 /*** IUnknown methods ***/ 245 #define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 246 #define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) 247 #define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) 248 /*** IVssSoftwareSnapshotProvider methods ***/ 249 #define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) 250 #define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) 251 #define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) 252 #define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) 253 #define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) 254 #define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) 255 #define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) 256 #define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) 257 #define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId) 258 #define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) 259 #else 260 /*** IUnknown methods ***/ 261 static inline HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) { 262 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 263 } 264 static inline ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) { 265 return This->lpVtbl->AddRef(This); 266 } 267 static inline ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) { 268 return This->lpVtbl->Release(This); 269 } 270 /*** IVssSoftwareSnapshotProvider methods ***/ 271 static inline HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) { 272 return This->lpVtbl->SetContext(This,lContext); 273 } 274 static inline HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { 275 return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); 276 } 277 static inline HRESULT IVssSoftwareSnapshotProvider_Query(IVssSoftwareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { 278 return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); 279 } 280 static inline HRESULT IVssSoftwareSnapshotProvider_DeleteSnapshots(IVssSoftwareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { 281 return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); 282 } 283 static inline HRESULT IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) { 284 return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext); 285 } 286 static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { 287 return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider); 288 } 289 static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { 290 return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility); 291 } 292 static inline HRESULT IVssSoftwareSnapshotProvider_SetSnapshotProperty(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { 293 return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); 294 } 295 static inline HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) { 296 return This->lpVtbl->RevertToSnapshot(This,SnapshotId); 297 } 298 static inline HRESULT IVssSoftwareSnapshotProvider_QueryRevertStatus(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { 299 return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); 300 } 301 #endif 302 #endif 303 304 #endif 305 306 307 #endif /* __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ */ 308 309 /***************************************************************************** 310 * IVssProviderCreateSnapshotSet interface 311 */ 312 #ifndef __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ 313 #define __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ 314 315 DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c); 316 #if defined(__cplusplus) && !defined(CINTERFACE) 317 MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c") 318 IVssProviderCreateSnapshotSet : public IUnknown 319 { 320 virtual HRESULT STDMETHODCALLTYPE EndPrepareSnapshots( 321 VSS_ID SnapshotSetId) = 0; 322 323 virtual HRESULT STDMETHODCALLTYPE PreCommitSnapshots( 324 VSS_ID SnapshotSetId) = 0; 325 326 virtual HRESULT STDMETHODCALLTYPE CommitSnapshots( 327 VSS_ID SnapshotSetId) = 0; 328 329 virtual HRESULT STDMETHODCALLTYPE PostCommitSnapshots( 330 VSS_ID SnapshotSetId, 331 LONG lSnapshotsCount) = 0; 332 333 virtual HRESULT STDMETHODCALLTYPE PreFinalCommitSnapshots( 334 VSS_ID SnapshotSetId) = 0; 335 336 virtual HRESULT STDMETHODCALLTYPE PostFinalCommitSnapshots( 337 VSS_ID SnapshotSetId) = 0; 338 339 virtual HRESULT STDMETHODCALLTYPE AbortSnapshots( 340 VSS_ID SnapshotSetId) = 0; 341 342 }; 343 #ifdef __CRT_UUID_DECL 344 __CRT_UUID_DECL(IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c) 345 #endif 346 #else 347 typedef struct IVssProviderCreateSnapshotSetVtbl { 348 BEGIN_INTERFACE 349 350 /*** IUnknown methods ***/ 351 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 352 IVssProviderCreateSnapshotSet *This, 353 REFIID riid, 354 void **ppvObject); 355 356 ULONG (STDMETHODCALLTYPE *AddRef)( 357 IVssProviderCreateSnapshotSet *This); 358 359 ULONG (STDMETHODCALLTYPE *Release)( 360 IVssProviderCreateSnapshotSet *This); 361 362 /*** IVssProviderCreateSnapshotSet methods ***/ 363 HRESULT (STDMETHODCALLTYPE *EndPrepareSnapshots)( 364 IVssProviderCreateSnapshotSet *This, 365 VSS_ID SnapshotSetId); 366 367 HRESULT (STDMETHODCALLTYPE *PreCommitSnapshots)( 368 IVssProviderCreateSnapshotSet *This, 369 VSS_ID SnapshotSetId); 370 371 HRESULT (STDMETHODCALLTYPE *CommitSnapshots)( 372 IVssProviderCreateSnapshotSet *This, 373 VSS_ID SnapshotSetId); 374 375 HRESULT (STDMETHODCALLTYPE *PostCommitSnapshots)( 376 IVssProviderCreateSnapshotSet *This, 377 VSS_ID SnapshotSetId, 378 LONG lSnapshotsCount); 379 380 HRESULT (STDMETHODCALLTYPE *PreFinalCommitSnapshots)( 381 IVssProviderCreateSnapshotSet *This, 382 VSS_ID SnapshotSetId); 383 384 HRESULT (STDMETHODCALLTYPE *PostFinalCommitSnapshots)( 385 IVssProviderCreateSnapshotSet *This, 386 VSS_ID SnapshotSetId); 387 388 HRESULT (STDMETHODCALLTYPE *AbortSnapshots)( 389 IVssProviderCreateSnapshotSet *This, 390 VSS_ID SnapshotSetId); 391 392 END_INTERFACE 393 } IVssProviderCreateSnapshotSetVtbl; 394 395 interface IVssProviderCreateSnapshotSet { 396 CONST_VTBL IVssProviderCreateSnapshotSetVtbl* lpVtbl; 397 }; 398 399 #ifdef COBJMACROS 400 #ifndef WIDL_C_INLINE_WRAPPERS 401 /*** IUnknown methods ***/ 402 #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 403 #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This) 404 #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This) 405 /*** IVssProviderCreateSnapshotSet methods ***/ 406 #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId) 407 #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId) 408 #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId) 409 #define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) 410 #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId) 411 #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId) 412 #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId) 413 #else 414 /*** IUnknown methods ***/ 415 static inline HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) { 416 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 417 } 418 static inline ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) { 419 return This->lpVtbl->AddRef(This); 420 } 421 static inline ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) { 422 return This->lpVtbl->Release(This); 423 } 424 /*** IVssProviderCreateSnapshotSet methods ***/ 425 static inline HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 426 return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId); 427 } 428 static inline HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 429 return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId); 430 } 431 static inline HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 432 return This->lpVtbl->CommitSnapshots(This,SnapshotSetId); 433 } 434 static inline HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) { 435 return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount); 436 } 437 static inline HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 438 return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId); 439 } 440 static inline HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 441 return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId); 442 } 443 static inline HRESULT IVssProviderCreateSnapshotSet_AbortSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { 444 return This->lpVtbl->AbortSnapshots(This,SnapshotSetId); 445 } 446 #endif 447 #endif 448 449 #endif 450 451 452 #endif /* __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ */ 453 454 /***************************************************************************** 455 * IVssProviderNotifications interface 456 */ 457 #ifndef __IVssProviderNotifications_INTERFACE_DEFINED__ 458 #define __IVssProviderNotifications_INTERFACE_DEFINED__ 459 460 DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04); 461 #if defined(__cplusplus) && !defined(CINTERFACE) 462 MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004") 463 IVssProviderNotifications : public IUnknown 464 { 465 virtual HRESULT STDMETHODCALLTYPE OnLoad( 466 IUnknown *pCallback) = 0; 467 468 virtual HRESULT STDMETHODCALLTYPE OnUnload( 469 WINBOOL bForceUnload) = 0; 470 471 }; 472 #ifdef __CRT_UUID_DECL 473 __CRT_UUID_DECL(IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04) 474 #endif 475 #else 476 typedef struct IVssProviderNotificationsVtbl { 477 BEGIN_INTERFACE 478 479 /*** IUnknown methods ***/ 480 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 481 IVssProviderNotifications *This, 482 REFIID riid, 483 void **ppvObject); 484 485 ULONG (STDMETHODCALLTYPE *AddRef)( 486 IVssProviderNotifications *This); 487 488 ULONG (STDMETHODCALLTYPE *Release)( 489 IVssProviderNotifications *This); 490 491 /*** IVssProviderNotifications methods ***/ 492 HRESULT (STDMETHODCALLTYPE *OnLoad)( 493 IVssProviderNotifications *This, 494 IUnknown *pCallback); 495 496 HRESULT (STDMETHODCALLTYPE *OnUnload)( 497 IVssProviderNotifications *This, 498 WINBOOL bForceUnload); 499 500 END_INTERFACE 501 } IVssProviderNotificationsVtbl; 502 503 interface IVssProviderNotifications { 504 CONST_VTBL IVssProviderNotificationsVtbl* lpVtbl; 505 }; 506 507 #ifdef COBJMACROS 508 #ifndef WIDL_C_INLINE_WRAPPERS 509 /*** IUnknown methods ***/ 510 #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 511 #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This) 512 #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This) 513 /*** IVssProviderNotifications methods ***/ 514 #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback) 515 #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload) 516 #else 517 /*** IUnknown methods ***/ 518 static inline HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) { 519 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 520 } 521 static inline ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) { 522 return This->lpVtbl->AddRef(This); 523 } 524 static inline ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) { 525 return This->lpVtbl->Release(This); 526 } 527 /*** IVssProviderNotifications methods ***/ 528 static inline HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) { 529 return This->lpVtbl->OnLoad(This,pCallback); 530 } 531 static inline HRESULT IVssProviderNotifications_OnUnload(IVssProviderNotifications* This,WINBOOL bForceUnload) { 532 return This->lpVtbl->OnUnload(This,bForceUnload); 533 } 534 #endif 535 #endif 536 537 #endif 538 539 540 #endif /* __IVssProviderNotifications_INTERFACE_DEFINED__ */ 541 542 /***************************************************************************** 543 * IVssHardwareSnapshotProvider interface 544 */ 545 #ifndef __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ 546 #define __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ 547 548 DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10); 549 #if defined(__cplusplus) && !defined(CINTERFACE) 550 MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10") 551 IVssHardwareSnapshotProvider : public IUnknown 552 { 553 virtual HRESULT STDMETHODCALLTYPE AreLunsSupported( 554 LONG lLunCount, 555 LONG lContext, 556 VSS_PWSZ *rgwszDevices, 557 VDS_LUN_INFORMATION *pLunInformation, 558 WINBOOL *pbIsSupported) = 0; 559 560 virtual HRESULT STDMETHODCALLTYPE FillInLunInfo( 561 VSS_PWSZ wszDeviceName, 562 VDS_LUN_INFORMATION *pLunInfo, 563 WINBOOL *pbIsSupported) = 0; 564 565 virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( 566 VSS_ID SnapshotSetId, 567 VSS_ID SnapshotId, 568 LONG lContext, 569 LONG lLunCount, 570 VSS_PWSZ *rgDeviceNames, 571 VDS_LUN_INFORMATION *rgLunInformation) = 0; 572 573 virtual HRESULT STDMETHODCALLTYPE GetTargetLuns( 574 LONG lLunCount, 575 VSS_PWSZ *rgDeviceNames, 576 VDS_LUN_INFORMATION *rgSourceLuns, 577 VDS_LUN_INFORMATION *rgDestinationLuns) = 0; 578 579 virtual HRESULT STDMETHODCALLTYPE LocateLuns( 580 LONG lLunCount, 581 VDS_LUN_INFORMATION *rgSourceLuns) = 0; 582 583 virtual HRESULT STDMETHODCALLTYPE OnLunEmpty( 584 VSS_PWSZ wszDeviceName, 585 VDS_LUN_INFORMATION *pInformation) = 0; 586 587 }; 588 #ifdef __CRT_UUID_DECL 589 __CRT_UUID_DECL(IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10) 590 #endif 591 #else 592 typedef struct IVssHardwareSnapshotProviderVtbl { 593 BEGIN_INTERFACE 594 595 /*** IUnknown methods ***/ 596 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 597 IVssHardwareSnapshotProvider *This, 598 REFIID riid, 599 void **ppvObject); 600 601 ULONG (STDMETHODCALLTYPE *AddRef)( 602 IVssHardwareSnapshotProvider *This); 603 604 ULONG (STDMETHODCALLTYPE *Release)( 605 IVssHardwareSnapshotProvider *This); 606 607 /*** IVssHardwareSnapshotProvider methods ***/ 608 HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( 609 IVssHardwareSnapshotProvider *This, 610 LONG lLunCount, 611 LONG lContext, 612 VSS_PWSZ *rgwszDevices, 613 VDS_LUN_INFORMATION *pLunInformation, 614 WINBOOL *pbIsSupported); 615 616 HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( 617 IVssHardwareSnapshotProvider *This, 618 VSS_PWSZ wszDeviceName, 619 VDS_LUN_INFORMATION *pLunInfo, 620 WINBOOL *pbIsSupported); 621 622 HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( 623 IVssHardwareSnapshotProvider *This, 624 VSS_ID SnapshotSetId, 625 VSS_ID SnapshotId, 626 LONG lContext, 627 LONG lLunCount, 628 VSS_PWSZ *rgDeviceNames, 629 VDS_LUN_INFORMATION *rgLunInformation); 630 631 HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( 632 IVssHardwareSnapshotProvider *This, 633 LONG lLunCount, 634 VSS_PWSZ *rgDeviceNames, 635 VDS_LUN_INFORMATION *rgSourceLuns, 636 VDS_LUN_INFORMATION *rgDestinationLuns); 637 638 HRESULT (STDMETHODCALLTYPE *LocateLuns)( 639 IVssHardwareSnapshotProvider *This, 640 LONG lLunCount, 641 VDS_LUN_INFORMATION *rgSourceLuns); 642 643 HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( 644 IVssHardwareSnapshotProvider *This, 645 VSS_PWSZ wszDeviceName, 646 VDS_LUN_INFORMATION *pInformation); 647 648 END_INTERFACE 649 } IVssHardwareSnapshotProviderVtbl; 650 651 interface IVssHardwareSnapshotProvider { 652 CONST_VTBL IVssHardwareSnapshotProviderVtbl* lpVtbl; 653 }; 654 655 #ifdef COBJMACROS 656 #ifndef WIDL_C_INLINE_WRAPPERS 657 /*** IUnknown methods ***/ 658 #define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 659 #define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) 660 #define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) 661 /*** IVssHardwareSnapshotProvider methods ***/ 662 #define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) 663 #define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) 664 #define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) 665 #define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) 666 #define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) 667 #define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) 668 #else 669 /*** IUnknown methods ***/ 670 static inline HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) { 671 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 672 } 673 static inline ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) { 674 return This->lpVtbl->AddRef(This); 675 } 676 static inline ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) { 677 return This->lpVtbl->Release(This); 678 } 679 /*** IVssHardwareSnapshotProvider methods ***/ 680 static inline HRESULT IVssHardwareSnapshotProvider_AreLunsSupported(IVssHardwareSnapshotProvider* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { 681 return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); 682 } 683 static inline HRESULT IVssHardwareSnapshotProvider_FillInLunInfo(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { 684 return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); 685 } 686 static inline HRESULT IVssHardwareSnapshotProvider_BeginPrepareSnapshot(IVssHardwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { 687 return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); 688 } 689 static inline HRESULT IVssHardwareSnapshotProvider_GetTargetLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { 690 return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); 691 } 692 static inline HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { 693 return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); 694 } 695 static inline HRESULT IVssHardwareSnapshotProvider_OnLunEmpty(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { 696 return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); 697 } 698 #endif 699 #endif 700 701 #endif 702 703 704 #endif /* __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ */ 705 706 /***************************************************************************** 707 * IVssHardwareSnapshotProviderEx interface 708 */ 709 #ifndef __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ 710 #define __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ 711 712 DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd); 713 #if defined(__cplusplus) && !defined(CINTERFACE) 714 MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd") 715 IVssHardwareSnapshotProviderEx : public IVssHardwareSnapshotProvider 716 { 717 virtual HRESULT STDMETHODCALLTYPE GetProviderCapabilities( 718 ULONGLONG *pllOriginalCapabilityMask) = 0; 719 720 virtual HRESULT STDMETHODCALLTYPE OnLunStateChange( 721 VDS_LUN_INFORMATION *pSnapshotLuns, 722 VDS_LUN_INFORMATION *pOriginalLuns, 723 DWORD dwCount, 724 DWORD dwFlags) = 0; 725 726 virtual HRESULT STDMETHODCALLTYPE ResyncLuns( 727 VDS_LUN_INFORMATION *pSourceLuns, 728 VDS_LUN_INFORMATION *pTargetLuns, 729 DWORD dwCount, 730 IVssAsync **ppAsync) = 0; 731 732 virtual HRESULT STDMETHODCALLTYPE OnReuseLuns( 733 VDS_LUN_INFORMATION *pSnapshotLuns, 734 VDS_LUN_INFORMATION *pOriginalLuns, 735 DWORD dwCount) = 0; 736 737 }; 738 #ifdef __CRT_UUID_DECL 739 __CRT_UUID_DECL(IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd) 740 #endif 741 #else 742 typedef struct IVssHardwareSnapshotProviderExVtbl { 743 BEGIN_INTERFACE 744 745 /*** IUnknown methods ***/ 746 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 747 IVssHardwareSnapshotProviderEx *This, 748 REFIID riid, 749 void **ppvObject); 750 751 ULONG (STDMETHODCALLTYPE *AddRef)( 752 IVssHardwareSnapshotProviderEx *This); 753 754 ULONG (STDMETHODCALLTYPE *Release)( 755 IVssHardwareSnapshotProviderEx *This); 756 757 /*** IVssHardwareSnapshotProvider methods ***/ 758 HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( 759 IVssHardwareSnapshotProviderEx *This, 760 LONG lLunCount, 761 LONG lContext, 762 VSS_PWSZ *rgwszDevices, 763 VDS_LUN_INFORMATION *pLunInformation, 764 WINBOOL *pbIsSupported); 765 766 HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( 767 IVssHardwareSnapshotProviderEx *This, 768 VSS_PWSZ wszDeviceName, 769 VDS_LUN_INFORMATION *pLunInfo, 770 WINBOOL *pbIsSupported); 771 772 HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( 773 IVssHardwareSnapshotProviderEx *This, 774 VSS_ID SnapshotSetId, 775 VSS_ID SnapshotId, 776 LONG lContext, 777 LONG lLunCount, 778 VSS_PWSZ *rgDeviceNames, 779 VDS_LUN_INFORMATION *rgLunInformation); 780 781 HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( 782 IVssHardwareSnapshotProviderEx *This, 783 LONG lLunCount, 784 VSS_PWSZ *rgDeviceNames, 785 VDS_LUN_INFORMATION *rgSourceLuns, 786 VDS_LUN_INFORMATION *rgDestinationLuns); 787 788 HRESULT (STDMETHODCALLTYPE *LocateLuns)( 789 IVssHardwareSnapshotProviderEx *This, 790 LONG lLunCount, 791 VDS_LUN_INFORMATION *rgSourceLuns); 792 793 HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( 794 IVssHardwareSnapshotProviderEx *This, 795 VSS_PWSZ wszDeviceName, 796 VDS_LUN_INFORMATION *pInformation); 797 798 /*** IVssHardwareSnapshotProviderEx methods ***/ 799 HRESULT (STDMETHODCALLTYPE *GetProviderCapabilities)( 800 IVssHardwareSnapshotProviderEx *This, 801 ULONGLONG *pllOriginalCapabilityMask); 802 803 HRESULT (STDMETHODCALLTYPE *OnLunStateChange)( 804 IVssHardwareSnapshotProviderEx *This, 805 VDS_LUN_INFORMATION *pSnapshotLuns, 806 VDS_LUN_INFORMATION *pOriginalLuns, 807 DWORD dwCount, 808 DWORD dwFlags); 809 810 HRESULT (STDMETHODCALLTYPE *ResyncLuns)( 811 IVssHardwareSnapshotProviderEx *This, 812 VDS_LUN_INFORMATION *pSourceLuns, 813 VDS_LUN_INFORMATION *pTargetLuns, 814 DWORD dwCount, 815 IVssAsync **ppAsync); 816 817 HRESULT (STDMETHODCALLTYPE *OnReuseLuns)( 818 IVssHardwareSnapshotProviderEx *This, 819 VDS_LUN_INFORMATION *pSnapshotLuns, 820 VDS_LUN_INFORMATION *pOriginalLuns, 821 DWORD dwCount); 822 823 END_INTERFACE 824 } IVssHardwareSnapshotProviderExVtbl; 825 826 interface IVssHardwareSnapshotProviderEx { 827 CONST_VTBL IVssHardwareSnapshotProviderExVtbl* lpVtbl; 828 }; 829 830 #ifdef COBJMACROS 831 #ifndef WIDL_C_INLINE_WRAPPERS 832 /*** IUnknown methods ***/ 833 #define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 834 #define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This) 835 #define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This) 836 /*** IVssHardwareSnapshotProvider methods ***/ 837 #define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) 838 #define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) 839 #define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) 840 #define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) 841 #define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) 842 #define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) 843 /*** IVssHardwareSnapshotProviderEx methods ***/ 844 #define IVssHardwareSnapshotProviderEx_GetProviderCapabilities(This,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask) 845 #define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) 846 #define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) 847 #define IVssHardwareSnapshotProviderEx_OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) (This)->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) 848 #else 849 /*** IUnknown methods ***/ 850 static inline HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) { 851 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 852 } 853 static inline ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) { 854 return This->lpVtbl->AddRef(This); 855 } 856 static inline ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) { 857 return This->lpVtbl->Release(This); 858 } 859 /*** IVssHardwareSnapshotProvider methods ***/ 860 static inline HRESULT IVssHardwareSnapshotProviderEx_AreLunsSupported(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { 861 return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); 862 } 863 static inline HRESULT IVssHardwareSnapshotProviderEx_FillInLunInfo(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { 864 return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); 865 } 866 static inline HRESULT IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(IVssHardwareSnapshotProviderEx* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { 867 return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); 868 } 869 static inline HRESULT IVssHardwareSnapshotProviderEx_GetTargetLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { 870 return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); 871 } 872 static inline HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { 873 return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); 874 } 875 static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunEmpty(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { 876 return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); 877 } 878 /*** IVssHardwareSnapshotProviderEx methods ***/ 879 static inline HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) { 880 return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask); 881 } 882 static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunStateChange(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) { 883 return This->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags); 884 } 885 static inline HRESULT IVssHardwareSnapshotProviderEx_ResyncLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) { 886 return This->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync); 887 } 888 static inline HRESULT IVssHardwareSnapshotProviderEx_OnReuseLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount) { 889 return This->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount); 890 } 891 #endif 892 #endif 893 894 #endif 895 896 897 #endif /* __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ */ 898 899 /***************************************************************************** 900 * IVssFileShareSnapshotProvider interface 901 */ 902 #ifndef __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ 903 #define __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ 904 905 DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66); 906 #if defined(__cplusplus) && !defined(CINTERFACE) 907 MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66") 908 IVssFileShareSnapshotProvider : public IUnknown 909 { 910 virtual HRESULT STDMETHODCALLTYPE SetContext( 911 LONG lContext) = 0; 912 913 virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( 914 VSS_ID SnapshotId, 915 VSS_SNAPSHOT_PROP *pProp) = 0; 916 917 virtual HRESULT STDMETHODCALLTYPE Query( 918 VSS_ID QueriedObjectId, 919 VSS_OBJECT_TYPE eQueriedObjectType, 920 VSS_OBJECT_TYPE eReturnedObjectsType, 921 IVssEnumObject **ppEnum) = 0; 922 923 virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( 924 VSS_ID SourceObjectId, 925 VSS_OBJECT_TYPE eSourceObjectType, 926 WINBOOL bForceDelete, 927 LONG *plDeletedSnapshots, 928 VSS_ID *pNondeletedSnapshotID) = 0; 929 930 virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( 931 VSS_ID SnapshotSetId, 932 VSS_ID SnapshotId, 933 VSS_PWSZ pwszSharePath, 934 LONG lNewContext, 935 VSS_ID ProviderId) = 0; 936 937 virtual HRESULT STDMETHODCALLTYPE IsPathSupported( 938 VSS_PWSZ pwszSharePath, 939 WINBOOL *pbSupportedByThisProvider) = 0; 940 941 virtual HRESULT STDMETHODCALLTYPE IsPathSnapshotted( 942 VSS_PWSZ pwszSharePath, 943 WINBOOL *pbSnapshotsPresent, 944 LONG *plSnapshotCompatibility) = 0; 945 946 virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( 947 VSS_ID SnapshotId, 948 VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, 949 VARIANT vProperty) = 0; 950 951 }; 952 #ifdef __CRT_UUID_DECL 953 __CRT_UUID_DECL(IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66) 954 #endif 955 #else 956 typedef struct IVssFileShareSnapshotProviderVtbl { 957 BEGIN_INTERFACE 958 959 /*** IUnknown methods ***/ 960 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 961 IVssFileShareSnapshotProvider *This, 962 REFIID riid, 963 void **ppvObject); 964 965 ULONG (STDMETHODCALLTYPE *AddRef)( 966 IVssFileShareSnapshotProvider *This); 967 968 ULONG (STDMETHODCALLTYPE *Release)( 969 IVssFileShareSnapshotProvider *This); 970 971 /*** IVssFileShareSnapshotProvider methods ***/ 972 HRESULT (STDMETHODCALLTYPE *SetContext)( 973 IVssFileShareSnapshotProvider *This, 974 LONG lContext); 975 976 HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( 977 IVssFileShareSnapshotProvider *This, 978 VSS_ID SnapshotId, 979 VSS_SNAPSHOT_PROP *pProp); 980 981 HRESULT (STDMETHODCALLTYPE *Query)( 982 IVssFileShareSnapshotProvider *This, 983 VSS_ID QueriedObjectId, 984 VSS_OBJECT_TYPE eQueriedObjectType, 985 VSS_OBJECT_TYPE eReturnedObjectsType, 986 IVssEnumObject **ppEnum); 987 988 HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( 989 IVssFileShareSnapshotProvider *This, 990 VSS_ID SourceObjectId, 991 VSS_OBJECT_TYPE eSourceObjectType, 992 WINBOOL bForceDelete, 993 LONG *plDeletedSnapshots, 994 VSS_ID *pNondeletedSnapshotID); 995 996 HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( 997 IVssFileShareSnapshotProvider *This, 998 VSS_ID SnapshotSetId, 999 VSS_ID SnapshotId, 1000 VSS_PWSZ pwszSharePath, 1001 LONG lNewContext, 1002 VSS_ID ProviderId); 1003 1004 HRESULT (STDMETHODCALLTYPE *IsPathSupported)( 1005 IVssFileShareSnapshotProvider *This, 1006 VSS_PWSZ pwszSharePath, 1007 WINBOOL *pbSupportedByThisProvider); 1008 1009 HRESULT (STDMETHODCALLTYPE *IsPathSnapshotted)( 1010 IVssFileShareSnapshotProvider *This, 1011 VSS_PWSZ pwszSharePath, 1012 WINBOOL *pbSnapshotsPresent, 1013 LONG *plSnapshotCompatibility); 1014 1015 HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( 1016 IVssFileShareSnapshotProvider *This, 1017 VSS_ID SnapshotId, 1018 VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, 1019 VARIANT vProperty); 1020 1021 END_INTERFACE 1022 } IVssFileShareSnapshotProviderVtbl; 1023 1024 interface IVssFileShareSnapshotProvider { 1025 CONST_VTBL IVssFileShareSnapshotProviderVtbl* lpVtbl; 1026 }; 1027 1028 #ifdef COBJMACROS 1029 #ifndef WIDL_C_INLINE_WRAPPERS 1030 /*** IUnknown methods ***/ 1031 #define IVssFileShareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1032 #define IVssFileShareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) 1033 #define IVssFileShareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) 1034 /*** IVssFileShareSnapshotProvider methods ***/ 1035 #define IVssFileShareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) 1036 #define IVssFileShareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) 1037 #define IVssFileShareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) 1038 #define IVssFileShareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) 1039 #define IVssFileShareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) 1040 #define IVssFileShareSnapshotProvider_IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) (This)->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) 1041 #define IVssFileShareSnapshotProvider_IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) 1042 #define IVssFileShareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) 1043 #else 1044 /*** IUnknown methods ***/ 1045 static inline HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) { 1046 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1047 } 1048 static inline ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) { 1049 return This->lpVtbl->AddRef(This); 1050 } 1051 static inline ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) { 1052 return This->lpVtbl->Release(This); 1053 } 1054 /*** IVssFileShareSnapshotProvider methods ***/ 1055 static inline HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) { 1056 return This->lpVtbl->SetContext(This,lContext); 1057 } 1058 static inline HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { 1059 return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); 1060 } 1061 static inline HRESULT IVssFileShareSnapshotProvider_Query(IVssFileShareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { 1062 return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); 1063 } 1064 static inline HRESULT IVssFileShareSnapshotProvider_DeleteSnapshots(IVssFileShareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { 1065 return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); 1066 } 1067 static inline HRESULT IVssFileShareSnapshotProvider_BeginPrepareSnapshot(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszSharePath,LONG lNewContext,VSS_ID ProviderId) { 1068 return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId); 1069 } 1070 static inline HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) { 1071 return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider); 1072 } 1073 static inline HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { 1074 return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility); 1075 } 1076 static inline HRESULT IVssFileShareSnapshotProvider_SetSnapshotProperty(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { 1077 return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); 1078 } 1079 #endif 1080 #endif 1081 1082 #endif 1083 1084 1085 #endif /* __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ */ 1086 1087 #ifndef __VSSProvider_LIBRARY_DEFINED__ 1088 #define __VSSProvider_LIBRARY_DEFINED__ 1089 1090 DEFINE_GUID(LIBID_VSSProvider, 0x73c8b4c1, 0x6e9d, 0x4fc2, 0xb3,0x04, 0x03,0x0e,0xc7,0x63,0xfe,0x81); 1091 1092 #endif /* __VSSProvider_LIBRARY_DEFINED__ */ 1093 #endif /* WINAPI_PARTITION_DESKTOP */ 1094 /* Begin additional prototypes for all interfaces */ 1095 1096 ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *); 1097 unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *); 1098 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *); 1099 void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *); 1100 1101 /* End additional prototypes */ 1102 1103 #ifdef __cplusplus 1104 } 1105 #endif 1106 1107 #endif /* __vsprov_h__ */