1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef _INC_VSPROV
|
---|
7 | #define _INC_VSPROV
|
---|
8 |
|
---|
9 | #include <vss.h>
|
---|
10 | #include <vds.h>
|
---|
11 | #undef INTERFACE
|
---|
12 | #define INTERFACE IVssHardwareSnapshotProvider
|
---|
13 | #ifdef __GNUC__
|
---|
14 | #warning COM interfaces layout in this header has not been verified.
|
---|
15 | #warning COM interfaces with incorrect layout may not work at all.
|
---|
16 | __MINGW_BROKEN_INTERFACE(INTERFACE)
|
---|
17 | #endif
|
---|
18 | DECLARE_INTERFACE_(IVssHardwareSnapshotProvider,IUnknown)
|
---|
19 | {
|
---|
20 | BEGIN_INTERFACE
|
---|
21 |
|
---|
22 | /* IUnknown methods */
|
---|
23 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
|
---|
24 | STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
---|
25 | STDMETHOD_(ULONG, Release)(THIS) PURE;
|
---|
26 |
|
---|
27 | /* IVssHardwareSnapshotProvider methods */
|
---|
28 | STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE;
|
---|
29 | STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE;
|
---|
30 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE;
|
---|
31 | STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE;
|
---|
32 | STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE;
|
---|
33 | STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE;
|
---|
34 |
|
---|
35 | END_INTERFACE
|
---|
36 | };
|
---|
37 | #ifdef COBJMACROS
|
---|
38 | #define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
39 | #define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
40 | #define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
|
---|
41 | #define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
|
---|
42 | #define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
|
---|
43 | #define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
|
---|
44 | #define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
|
---|
45 | #define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
|
---|
46 | #define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
|
---|
47 | #endif /*COBJMACROS*/
|
---|
48 |
|
---|
49 | #undef INTERFACE
|
---|
50 | #define INTERFACE IVssHardwareSnapshotProviderEx
|
---|
51 | #ifdef __GNUC__
|
---|
52 | #warning COM interfaces layout in this header has not been verified.
|
---|
53 | #warning COM interfaces with incorrect layout may not work at all.
|
---|
54 | __MINGW_BROKEN_INTERFACE(INTERFACE)
|
---|
55 | #endif
|
---|
56 | DECLARE_INTERFACE_(IVssHardwareSnapshotProviderEx,IVssHardwareSnapshotProvider)
|
---|
57 | {
|
---|
58 | BEGIN_INTERFACE
|
---|
59 |
|
---|
60 | /* IUnknown methods */
|
---|
61 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
|
---|
62 | STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
---|
63 | STDMETHOD_(ULONG, Release)(THIS) PURE;
|
---|
64 |
|
---|
65 | /* IVssHardwareSnapshotProvider methods */
|
---|
66 | STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE;
|
---|
67 | STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE;
|
---|
68 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE;
|
---|
69 | STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE;
|
---|
70 | STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE;
|
---|
71 | STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE;
|
---|
72 |
|
---|
73 | /* IVssHardwareSnapshotProviderEx methods */
|
---|
74 | STDMETHOD_(HRESULT,GetProviderCapabilities)(THIS) PURE;
|
---|
75 | STDMETHOD_(HRESULT,OnLunStateChange)(THIS_ VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) PURE;
|
---|
76 | STDMETHOD_(HRESULT,OnReuseLuns)(THIS) PURE;
|
---|
77 | STDMETHOD_(HRESULT,ResyncLuns)(THIS_ VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) PURE;
|
---|
78 |
|
---|
79 | END_INTERFACE
|
---|
80 | };
|
---|
81 | #ifdef COBJMACROS
|
---|
82 | #define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
83 | #define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
84 | #define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This)
|
---|
85 | #define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
|
---|
86 | #define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
|
---|
87 | #define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
|
---|
88 | #define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
|
---|
89 | #define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
|
---|
90 | #define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
|
---|
91 | #define IVssHardwareSnapshotProviderEx_GetProviderCapabilities() (This)->lpVtbl->GetProviderCapabilities(This)
|
---|
92 | #define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags)
|
---|
93 | #define IVssHardwareSnapshotProviderEx_OnReuseLuns() (This)->lpVtbl->OnReuseLuns(This)
|
---|
94 | #define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync)
|
---|
95 | #endif /*COBJMACROS*/
|
---|
96 |
|
---|
97 | #undef INTERFACE
|
---|
98 | #define INTERFACE IVssProviderCreateSnapshotSet
|
---|
99 | #ifdef __GNUC__
|
---|
100 | #warning COM interfaces layout in this header has not been verified.
|
---|
101 | #warning COM interfaces with incorrect layout may not work at all.
|
---|
102 | __MINGW_BROKEN_INTERFACE(INTERFACE)
|
---|
103 | #endif
|
---|
104 | DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown)
|
---|
105 | {
|
---|
106 | BEGIN_INTERFACE
|
---|
107 |
|
---|
108 | /* IUnknown methods */
|
---|
109 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
|
---|
110 | STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
---|
111 | STDMETHOD_(ULONG, Release)(THIS) PURE;
|
---|
112 |
|
---|
113 | /* IVssProviderCreateSnapshotSet methods */
|
---|
114 | STDMETHOD_(HRESULT,EndPrepareSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
115 | STDMETHOD_(HRESULT,PreCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
116 | STDMETHOD_(HRESULT,CommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
117 | STDMETHOD_(HRESULT,PostCommitSnapshots)(THIS_ VSS_ID SnapshotSetId,LONG lSnapshotsCount) PURE;
|
---|
118 | STDMETHOD_(HRESULT,PreFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
119 | STDMETHOD_(HRESULT,PostFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
120 | STDMETHOD_(HRESULT,AbortSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
|
---|
121 |
|
---|
122 | END_INTERFACE
|
---|
123 | };
|
---|
124 | #ifdef COBJMACROS
|
---|
125 | #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
126 | #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
127 | #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This)
|
---|
128 | #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId)
|
---|
129 | #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId)
|
---|
130 | #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId)
|
---|
131 | #define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount)
|
---|
132 | #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId)
|
---|
133 | #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId)
|
---|
134 | #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId)
|
---|
135 | #endif /*COBJMACROS*/
|
---|
136 |
|
---|
137 | #undef INTERFACE
|
---|
138 | #define INTERFACE IVssProviderNotifications
|
---|
139 | DECLARE_INTERFACE_(IVssProviderNotifications,IUnknown)
|
---|
140 | {
|
---|
141 | BEGIN_INTERFACE
|
---|
142 |
|
---|
143 | /* IUnknown methods */
|
---|
144 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
|
---|
145 | STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
---|
146 | STDMETHOD_(ULONG, Release)(THIS) PURE;
|
---|
147 |
|
---|
148 | /* IVssProviderNotifications methods */
|
---|
149 | STDMETHOD_(HRESULT,OnLoad)(THIS_ IUnknown *pCallback) PURE;
|
---|
150 | STDMETHOD_(HRESULT,OnUnload)(THIS_ WINBOOL bForceUnload) PURE;
|
---|
151 |
|
---|
152 | END_INTERFACE
|
---|
153 | };
|
---|
154 | #ifdef COBJMACROS
|
---|
155 | #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
156 | #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
157 | #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This)
|
---|
158 | #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback)
|
---|
159 | #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload)
|
---|
160 | #endif /*COBJMACROS*/
|
---|
161 |
|
---|
162 | #undef INTERFACE
|
---|
163 | #define INTERFACE IVssSoftwareSnapshotProvider
|
---|
164 | #ifdef __GNUC__
|
---|
165 | #warning COM interfaces layout in this header has not been verified.
|
---|
166 | #warning COM interfaces with incorrect layout may not work at all.
|
---|
167 | __MINGW_BROKEN_INTERFACE(INTERFACE)
|
---|
168 | #endif
|
---|
169 | DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown)
|
---|
170 | {
|
---|
171 | BEGIN_INTERFACE
|
---|
172 |
|
---|
173 | /* IUnknown methods */
|
---|
174 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
|
---|
175 | STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
---|
176 | STDMETHOD_(ULONG, Release)(THIS) PURE;
|
---|
177 |
|
---|
178 | /* IVssSoftwareSnapshotProvider methods */
|
---|
179 | STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
|
---|
180 | STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
|
---|
181 | STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
|
---|
182 | STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
|
---|
183 | STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) PURE;
|
---|
184 | STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) PURE;
|
---|
185 | STDMETHOD_(HRESULT,IsVolumeSnapshotted)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) PURE;
|
---|
186 | STDMETHOD_(HRESULT,SetSnapshotProperty)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) PURE;
|
---|
187 | STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId) PURE;
|
---|
188 | STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
|
---|
189 |
|
---|
190 | END_INTERFACE
|
---|
191 | };
|
---|
192 | #ifdef COBJMACROS
|
---|
193 | #define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
194 | #define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
195 | #define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
|
---|
196 | #define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
|
---|
197 | #define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
|
---|
198 | #define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
|
---|
199 | #define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
|
---|
200 | #define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext)
|
---|
201 | #define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider)
|
---|
202 | #define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility)
|
---|
203 | #define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
|
---|
204 | #define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId)
|
---|
205 | #define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
|
---|
206 | #endif /*COBJMACROS*/
|
---|
207 |
|
---|
208 | #endif /*_INC_VSPROV*/
|
---|