master
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__
23typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider;
24#ifdef __cplusplus
25interface IVssSoftwareSnapshotProvider;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__
30#define __IVssProviderCreateSnapshotSet_FWD_DEFINED__
31typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet;
32#ifdef __cplusplus
33interface IVssProviderCreateSnapshotSet;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IVssProviderNotifications_FWD_DEFINED__
38#define __IVssProviderNotifications_FWD_DEFINED__
39typedef interface IVssProviderNotifications IVssProviderNotifications;
40#ifdef __cplusplus
41interface IVssProviderNotifications;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__
46#define __IVssHardwareSnapshotProvider_FWD_DEFINED__
47typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider;
48#ifdef __cplusplus
49interface IVssHardwareSnapshotProvider;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
54#define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
55typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx;
56#ifdef __cplusplus
57interface IVssHardwareSnapshotProviderEx;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__
62#define __IVssFileShareSnapshotProvider_FWD_DEFINED__
63typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider;
64#ifdef __cplusplus
65interface 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
77extern "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__
84typedef interface IVssSnapshotProvider IVssSnapshotProvider;
85#ifdef __cplusplus
86interface IVssSnapshotProvider;
87#endif /* __cplusplus */
88#endif
89
90#ifndef __IVssProviderNotifications_FWD_DEFINED__
91#define __IVssProviderNotifications_FWD_DEFINED__
92typedef interface IVssProviderNotifications IVssProviderNotifications;
93#ifdef __cplusplus
94interface IVssProviderNotifications;
95#endif /* __cplusplus */
96#endif
97
98typedef VSS_PWSZ *PVSS_PWSZ;
99/*****************************************************************************
100 * IVssSoftwareSnapshotProvider interface
101 */
102#ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
103#define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
104
105DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff);
106#if defined(__cplusplus) && !defined(CINTERFACE)
107MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff")
108IVssSoftwareSnapshotProvider : 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
162typedef 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
238interface 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 ***/
261static inline HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
262 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
263}
264static inline ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) {
265 return This->lpVtbl->AddRef(This);
266}
267static inline ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) {
268 return This->lpVtbl->Release(This);
269}
270/*** IVssSoftwareSnapshotProvider methods ***/
271static inline HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) {
272 return This->lpVtbl->SetContext(This,lContext);
273}
274static inline HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
275 return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
276}
277static 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}
280static 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}
283static 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}
286static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
287 return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider);
288}
289static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
290 return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility);
291}
292static 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}
295static inline HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) {
296 return This->lpVtbl->RevertToSnapshot(This,SnapshotId);
297}
298static 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
315DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c);
316#if defined(__cplusplus) && !defined(CINTERFACE)
317MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c")
318IVssProviderCreateSnapshotSet : 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
347typedef 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
395interface 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 ***/
415static inline HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) {
416 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
417}
418static inline ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) {
419 return This->lpVtbl->AddRef(This);
420}
421static inline ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) {
422 return This->lpVtbl->Release(This);
423}
424/*** IVssProviderCreateSnapshotSet methods ***/
425static inline HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
426 return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId);
427}
428static inline HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
429 return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId);
430}
431static inline HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
432 return This->lpVtbl->CommitSnapshots(This,SnapshotSetId);
433}
434static inline HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) {
435 return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount);
436}
437static inline HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
438 return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId);
439}
440static inline HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
441 return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId);
442}
443static 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
460DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04);
461#if defined(__cplusplus) && !defined(CINTERFACE)
462MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004")
463IVssProviderNotifications : 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
476typedef 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
503interface 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 ***/
518static inline HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) {
519 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
520}
521static inline ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) {
522 return This->lpVtbl->AddRef(This);
523}
524static inline ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) {
525 return This->lpVtbl->Release(This);
526}
527/*** IVssProviderNotifications methods ***/
528static inline HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) {
529 return This->lpVtbl->OnLoad(This,pCallback);
530}
531static 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
548DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10);
549#if defined(__cplusplus) && !defined(CINTERFACE)
550MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10")
551IVssHardwareSnapshotProvider : 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
592typedef 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
651interface 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 ***/
670static inline HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
671 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
672}
673static inline ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) {
674 return This->lpVtbl->AddRef(This);
675}
676static inline ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) {
677 return This->lpVtbl->Release(This);
678}
679/*** IVssHardwareSnapshotProvider methods ***/
680static 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}
683static 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}
686static 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}
689static 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}
692static inline HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
693 return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
694}
695static 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
712DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd);
713#if defined(__cplusplus) && !defined(CINTERFACE)
714MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd")
715IVssHardwareSnapshotProviderEx : 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
742typedef 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
826interface 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 ***/
850static inline HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) {
851 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
852}
853static inline ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) {
854 return This->lpVtbl->AddRef(This);
855}
856static inline ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) {
857 return This->lpVtbl->Release(This);
858}
859/*** IVssHardwareSnapshotProvider methods ***/
860static 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}
863static 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}
866static 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}
869static 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}
872static inline HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
873 return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
874}
875static 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 ***/
879static inline HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) {
880 return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask);
881}
882static 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}
885static 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}
888static 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
905DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66);
906#if defined(__cplusplus) && !defined(CINTERFACE)
907MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66")
908IVssFileShareSnapshotProvider : 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
956typedef 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
1024interface 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 ***/
1045static inline HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) {
1046 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1047}
1048static inline ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) {
1049 return This->lpVtbl->AddRef(This);
1050}
1051static inline ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) {
1052 return This->lpVtbl->Release(This);
1053}
1054/*** IVssFileShareSnapshotProvider methods ***/
1055static inline HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) {
1056 return This->lpVtbl->SetContext(This,lContext);
1057}
1058static inline HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
1059 return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
1060}
1061static 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}
1064static 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}
1067static 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}
1070static inline HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) {
1071 return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider);
1072}
1073static inline HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
1074 return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility);
1075}
1076static 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
1090DEFINE_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
1096ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *);
1097unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *);
1098unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
1099void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *);
1100
1101/* End additional prototypes */
1102
1103#ifdef __cplusplus
1104}
1105#endif
1106
1107#endif /* __vsprov_h__ */