source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/vss.idl

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 9.8 KB
RevLine 
[1166]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
7cpp_quote("#include <winapifamily.h>")
8cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
9
10import "oaidl.idl";
11import "ocidl.idl";
12
13cpp_quote("#include \"vsserror.h\" ")
14
15cpp_quote("")
16typedef WCHAR *VSS_PWSZ;
17typedef LONGLONG VSS_TIMESTAMP;
18typedef GUID VSS_ID;
19
20cpp_quote("")
21typedef enum _VSS_OBJECT_TYPE {
22 VSS_OBJECT_UNKNOWN = 0,
23 VSS_OBJECT_NONE,
24 VSS_OBJECT_SNAPSHOT_SET,
25 VSS_OBJECT_SNAPSHOT,
26 VSS_OBJECT_PROVIDER,
27 VSS_OBJECT_TYPE_COUNT
28} VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE;
29
30cpp_quote("")
31typedef enum _VSS_SNAPSHOT_STATE {
32 VSS_SS_UNKNOWN = 0,
33 VSS_SS_PREPARING,
34 VSS_SS_PROCESSING_PREPARE,
35 VSS_SS_PREPARED,
36 VSS_SS_PROCESSING_PRECOMMIT,
37 VSS_SS_PRECOMMITTED,
38 VSS_SS_PROCESSING_COMMIT,
39 VSS_SS_COMMITTED,
40 VSS_SS_PROCESSING_POSTCOMMIT,
41 VSS_SS_PROCESSING_PREFINALCOMMIT,
42 VSS_SS_PREFINALCOMMITTED,
43 VSS_SS_PROCESSING_POSTFINALCOMMIT,
44 VSS_SS_CREATED,
45 VSS_SS_ABORTED,
46 VSS_SS_DELETED,
47 VSS_SS_POSTCOMMITTED,
48 VSS_SS_COUNT
49} VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE;
50
51cpp_quote("")
52typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES {
53 VSS_VOLSNAP_ATTR_PERSISTENT = 0x00000001,
54 VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x00000002,
55 VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE = 0x00000004,
56 VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE = 0x00000008,
57 VSS_VOLSNAP_ATTR_NO_WRITERS = 0x00000010,
58 VSS_VOLSNAP_ATTR_TRANSPORTABLE = 0x00000020,
59 VSS_VOLSNAP_ATTR_NOT_SURFACED = 0x00000040,
60 VSS_VOLSNAP_ATTR_NOT_TRANSACTED = 0x00000080,
61 VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED = 0x00010000,
62 VSS_VOLSNAP_ATTR_DIFFERENTIAL = 0x00020000,
63 VSS_VOLSNAP_ATTR_PLEX = 0x00040000,
64 VSS_VOLSNAP_ATTR_IMPORTED = 0x00080000,
65 VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY = 0x00100000,
66 VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY = 0x00200000,
67 VSS_VOLSNAP_ATTR_AUTORECOVER = 0x00400000,
68 VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY = 0x00800000,
69 VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0x01000000,
70 VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x02000000,
71 VSS_VOLSNAP_ATTR_FILE_SHARE = 0x04000000
72} VSS_VOLUME_SNAPSHOT_ATTRIBUTES, *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES;
73
74cpp_quote("")
75typedef enum _VSS_SNAPSHOT_CONTEXT {
76 VSS_CTX_BACKUP = 0x00000000,
77 VSS_CTX_FILE_SHARE_BACKUP = VSS_VOLSNAP_ATTR_NO_WRITERS,
78 VSS_CTX_NAS_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS,
79 VSS_CTX_APP_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE,
80 VSS_CTX_CLIENT_ACCESSIBLE = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE | VSS_VOLSNAP_ATTR_NO_WRITERS,
81 VSS_CTX_CLIENT_ACCESSIBLE_WRITERS = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE,
82 VSS_CTX_ALL = 0xFFFFFFFF
83} VSS_SNAPSHOT_CONTEXT, *PVSS_SNAPSHOT_CONTEXT;
84
85cpp_quote("")
86typedef enum _VSS_PROVIDER_CAPABILITIES {
87 VSS_PRV_CAPABILITY_LEGACY = 0x00000001,
88 VSS_PRV_CAPABILITY_COMPLIANT = 0x00000002,
89 VSS_PRV_CAPABILITY_LUN_REPOINT = 0x00000004,
90 VSS_PRV_CAPABILITY_LUN_RESYNC = 0x00000008,
91 VSS_PRV_CAPABILITY_OFFLINE_CREATION = 0x00000010,
92 VSS_PRV_CAPABILITY_MULTIPLE_IMPORT = 0x00000020,
93 VSS_PRV_CAPABILITY_RECYCLING = 0x00000040,
94 VSS_PRV_CAPABILITY_PLEX = 0x00000080,
95 VSS_PRV_CAPABILITY_DIFFERENTIAL = 0x00000100,
96 VSS_PRV_CAPABILITY_CLUSTERED = 0x00000200
97} VSS_PROVIDER_CAPABILITIES, *PVSS_PROVIDER_CAPABILITIES;
98
99cpp_quote("")
100typedef enum _VSS_HARDWARE_OPTIONS {
101 VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001,
102 VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002,
103 VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004,
104 VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008,
105 VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100,
106 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200,
107 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400,
108 VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800
109} VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS;
110
111cpp_quote("")
112typedef enum _VSS_RECOVERY_OPTIONS {
113 VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x00000100,
114 VSS_RECOVERY_NO_VOLUME_CHECK = 0x00000200
115} VSS_RECOVERY_OPTIONS, *PVSS_RECOVERY_OPTIONS;
116
117cpp_quote("")
118typedef enum _VSS_WRITER_STATE {
119 VSS_WS_UNKNOWN = 0,
120 VSS_WS_STABLE,
121 VSS_WS_WAITING_FOR_FREEZE,
122 VSS_WS_WAITING_FOR_THAW,
123 VSS_WS_WAITING_FOR_POST_SNAPSHOT,
124 VSS_WS_WAITING_FOR_BACKUP_COMPLETE,
125 VSS_WS_FAILED_AT_IDENTIFY,
126 VSS_WS_FAILED_AT_PREPARE_BACKUP,
127 VSS_WS_FAILED_AT_PREPARE_SNAPSHOT,
128 VSS_WS_FAILED_AT_FREEZE,
129 VSS_WS_FAILED_AT_THAW,
130 VSS_WS_FAILED_AT_POST_SNAPSHOT,
131 VSS_WS_FAILED_AT_BACKUP_COMPLETE,
132 VSS_WS_FAILED_AT_PRE_RESTORE,
133 VSS_WS_FAILED_AT_POST_RESTORE,
134 VSS_WS_FAILED_AT_BACKUPSHUTDOWN,
135 VSS_WS_COUNT
136} VSS_WRITER_STATE, *PVSS_WRITER_STATE;
137
138cpp_quote("")
139typedef enum _VSS_BACKUP_TYPE {
140 VSS_BT_UNDEFINED,
141 VSS_BT_FULL,
142 VSS_BT_INCREMENTAL,
143 VSS_BT_DIFFERENTIAL,
144 VSS_BT_LOG,
145 VSS_BT_COPY,
146 VSS_BT_OTHER
147} VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE;
148
149cpp_quote("")
150typedef enum _VSS_RESTORE_TYPE {
151 VSS_RTYPE_UNDEFINED,
152 VSS_RTYPE_BY_COPY,
153 VSS_RTYPE_IMPORT,
154 VSS_RTYPE_OTHER
155} VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE;
156
157cpp_quote("")
158typedef enum _VSS_ROLLFORWARD_TYPE {
159 VSS_RF_UNDEFINED,
160 VSS_RF_NONE,
161 VSS_RF_ALL,
162 VSS_RF_PARTIAL
163} VSS_ROLLFORWARD_TYPE, *PVSS_ROLLFORWARD_TYPE;
164
165cpp_quote("")
166typedef enum _VSS_PROVIDER_TYPE {
167 VSS_PROV_UNKNOWN = 0,
168 VSS_PROV_SYSTEM = 1,
169 VSS_PROV_SOFTWARE = 2,
170 VSS_PROV_HARDWARE = 3,
171 VSS_PROV_FILESHARE = 4
172} VSS_PROVIDER_TYPE, *PVSS_PROVIDER_TYPE;
173
174cpp_quote("")
175typedef enum _VSS_APPLICATION_LEVEL {
176 VSS_APP_UNKNOWN = 0,
177 VSS_APP_SYSTEM = 1,
178 VSS_APP_BACK_END = 2,
179 VSS_APP_FRONT_END = 3,
180 VSS_APP_SYSTEM_RM = 4,
181 VSS_APP_AUTO = -1
182} VSS_APPLICATION_LEVEL, *PVSS_APPLICATION_LEVEL;
183
184cpp_quote("")
185typedef enum _VSS_SNAPSHOT_COMPATIBILITY {
186 VSS_SC_DISABLE_DEFRAG = 0x1,
187 VSS_SC_DISABLE_CONTENTINDEX = 0x2
188} VSS_SNAPSHOT_COMPATIBILITY;
189
190cpp_quote("")
191typedef enum _VSS_SNAPSHOT_PROPERTY_ID {
192 VSS_SPROPID_UNKNOWN = 0x00000000,
193 VSS_SPROPID_SNAPSHOT_ID = 0x00000001,
194 VSS_SPROPID_SNAPSHOT_SET_ID = 0x00000002,
195 VSS_SPROPID_SNAPSHOTS_COUNT = 0x00000003,
196 VSS_SPROPID_SNAPSHOT_DEVICE = 0x00000004,
197 VSS_SPROPID_ORIGINAL_VOLUME = 0x00000005,
198 VSS_SPROPID_ORIGINATING_MACHINE = 0x00000006,
199 VSS_SPROPID_SERVICE_MACHINE = 0x00000007,
200 VSS_SPROPID_EXPOSED_NAME = 0x00000008,
201 VSS_SPROPID_EXPOSED_PATH = 0x00000009,
202 VSS_SPROPID_PROVIDER_ID = 0x0000000A,
203 VSS_SPROPID_SNAPSHOT_ATTRIBUTES = 0x0000000B,
204 VSS_SPROPID_CREATION_TIMESTAMP = 0x0000000C,
205 VSS_SPROPID_STATUS = 0x0000000D
206} VSS_SNAPSHOT_PROPERTY_ID, *PVSS_SNAPSHOT_PROPERTY_ID;
207
208cpp_quote("")
209typedef enum _VSS_FILE_SPEC_BACKUP_TYPE {
210 VSS_FSBT_FULL_BACKUP_REQUIRED = 0x00000001,
211 VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x00000002,
212 VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x00000004,
213 VSS_FSBT_LOG_BACKUP_REQUIRED = 0x00000008,
214 VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x00000100,
215 VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x00000200,
216 VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x00000400,
217 VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x00000800,
218 VSS_FSBT_CREATED_DURING_BACKUP = 0x00010000,
219 VSS_FSBT_ALL_BACKUP_REQUIRED = 0x0000000F,
220 VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0x00000F00
221} VSS_FILE_SPEC_BACKUP_TYPE, *PVSS_FILE_SPEC_BACKUP_TYPE;
222
223cpp_quote("")
224typedef enum _VSS_BACKUP_SCHEMA {
225 VSS_BS_UNDEFINED = 0x00000000,
226 VSS_BS_DIFFERENTIAL = 0x00000001,
227 VSS_BS_INCREMENTAL = 0x00000002,
228 VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x00000004,
229 VSS_BS_LOG = 0x00000008,
230 VSS_BS_COPY = 0x00000010,
231 VSS_BS_TIMESTAMPED = 0x00000020,
232 VSS_BS_LAST_MODIFY = 0x00000040,
233 VSS_BS_LSN = 0x00000080,
234 VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x00000100,
235 VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x00000200,
236 VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x00000400,
237 VSS_BS_ROLLFORWARD_RESTORE = 0x00001000,
238 VSS_BS_RESTORE_RENAME = 0x00002000,
239 VSS_BS_AUTHORITATIVE_RESTORE = 0x00004000,
240 VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x00008000
241} VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA;
242
243cpp_quote("")
244typedef struct _VSS_SNAPSHOT_PROP {
245 VSS_ID m_SnapshotId;
246 VSS_ID m_SnapshotSetId;
247 LONG m_lSnapshotsCount;
248 VSS_PWSZ m_pwszSnapshotDeviceObject;
249 VSS_PWSZ m_pwszOriginalVolumeName;
250 VSS_PWSZ m_pwszOriginatingMachine;
251 VSS_PWSZ m_pwszServiceMachine;
252 VSS_PWSZ m_pwszExposedName;
253 VSS_PWSZ m_pwszExposedPath;
254 VSS_ID m_ProviderId;
255 LONG m_lSnapshotAttributes;
256 VSS_TIMESTAMP m_tsCreationTimestamp;
257 VSS_SNAPSHOT_STATE m_eStatus;
258} VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP;
259
260cpp_quote("")
261typedef struct _VSS_PROVIDER_PROP {
262 VSS_ID m_ProviderId;
263 VSS_PWSZ m_pwszProviderName;
264 VSS_PROVIDER_TYPE m_eProviderType;
265 VSS_PWSZ m_pwszProviderVersion;
266 VSS_ID m_ProviderVersionId;
267 CLSID m_ClassId;
268} VSS_PROVIDER_PROP, *PVSS_PROVIDER_PROP;
269
270cpp_quote("")
271[switch_type(VSS_OBJECT_TYPE)]
272typedef union {
273 [case(VSS_OBJECT_SNAPSHOT)] VSS_SNAPSHOT_PROP Snap;
274 [case(VSS_OBJECT_PROVIDER)] VSS_PROVIDER_PROP Prov;
275 [default];
276} VSS_OBJECT_UNION;
277
278cpp_quote("")
279typedef struct _VSS_OBJECT_PROP {
280 VSS_OBJECT_TYPE Type;
281 [switch_is(Type)] VSS_OBJECT_UNION Obj;
282} VSS_OBJECT_PROP, *PVSS_OBJECT_PROP;
283
284cpp_quote("")
285[
286 object,
287 uuid(ae1c7110-2f60-11d3-8a39-00c04f72d8e3),
288 pointer_default(unique)
289]
290interface IVssEnumObject : IUnknown {
291 HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] VSS_OBJECT_PROP *rgelt, [out] ULONG *pceltFetched);
292 HRESULT Skip([in] ULONG celt);
293 HRESULT Reset();
294 HRESULT Clone([in, out] IVssEnumObject **ppenum);
295};
296
297cpp_quote("")
298[
299 object,
300 uuid(507c37b4-cf5b-4e95-b0af-14eb9767467e),
301 pointer_default(unique)
302]
303interface IVssAsync : IUnknown {
304 HRESULT Cancel();
305 HRESULT Wait([in, defaultvalue(0xFFFFFFFF)] DWORD dwMilliseconds);
306 HRESULT QueryStatus([out] HRESULT *pHrResult, [in, out, unique] INT *pReserved);
307};
308
309cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
Note: See TracBrowser for help on using the repository browser.