]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/um/vsbackup.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / vsbackup.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Declaration of backup interfaces.
7use ctypes::c_void;
8use shared::guiddef::IID;
9use shared::minwindef::{BOOL, BYTE, DWORD, UINT};
10use shared::wtypes::BSTR;
11use um::unknwnbase::{IUnknown, IUnknownVtbl};
12use um::vss::{
13 IVssAsync, IVssEnumObject, VSS_BACKUP_TYPE, VSS_ID, VSS_OBJECT_TYPE, VSS_PWSZ,
14 VSS_RESTORE_TYPE, VSS_ROLLFORWARD_TYPE, VSS_SNAPSHOT_PROP, VSS_WRITER_STATE
15};
16use um::vswriter::{
17 IVssWMDependency, IVssWMFiledesc, IVssWriterComponentsVtbl, VSS_COMPONENT_TYPE,
18 VSS_FILE_RESTORE_STATUS, VSS_RESTOREMETHOD_ENUM, VSS_SOURCE_TYPE, VSS_USAGE_TYPE,
19 VSS_WRITERRESTORE_ENUM
20};
21use um::winnt::{HRESULT, LONG, LPCWSTR};
0bf4aa26
XL
22DEFINE_GUID!{IID_IVssExamineWriterMetadata,
23 0x902fcf7f, 0xb7fd, 0x42f8, 0x81, 0xf1, 0xb2, 0xe4, 0x00, 0xb1, 0xe5, 0xbd}
24DEFINE_GUID!{IID_IVssExamineWriterMetadataEx,
25 0x0c0e5ec0, 0xca44, 0x472b, 0xb7, 0x02, 0xe6, 0x52, 0xdb, 0x1c, 0x04, 0x51}
26DEFINE_GUID!{IID_IVssBackupComponents,
27 0x665c1d5f, 0xc218, 0x414d, 0xa0, 0x5d, 0x7f, 0xef, 0x5f, 0x9d, 0x5c, 0x86}
28DEFINE_GUID!{IID_IVssBackupComponentsEx,
29 0x963f03ad, 0x9e4c, 0x4a34, 0xac, 0x15, 0xe4, 0xb6, 0x17, 0x4e, 0x50, 0x36}
ff7c6d11
XL
30STRUCT!{struct VSS_COMPONENTINFO {
31 type_: VSS_COMPONENT_TYPE, // type is a keyword in rust
32 bstrLogicalPath: BSTR,
33 bstrComponentName: BSTR,
34 bstrCaption: BSTR,
35 pbIcon: *mut BYTE,
36 cbIcon: UINT,
37 bRestoreMetadata: bool,
38 bNotifyOnBackupComplete: bool,
39 bSelectable: bool,
40 bSelectableForRestore: bool,
41 dwComponentFlags: DWORD,
42 cFileCount: UINT,
43 cDatabases: UINT,
44 cLogFiles: UINT,
45 cDependencies: UINT,
46}}
47pub type PVSSCOMPONENTINFO = *const VSS_COMPONENTINFO;
0bf4aa26 48RIDL!{#[uuid(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)]
ff7c6d11
XL
49interface IVssWMComponent(IVssWMComponentVtbl): IUnknown(IUnknownVtbl) {
50 fn GetComponentInfo(
51 ppInfo: *mut PVSSCOMPONENTINFO,
52 ) -> HRESULT,
53 fn FreeComponentInfo(
54 pInfo: PVSSCOMPONENTINFO,
55 ) -> HRESULT,
56 fn GetFile(
57 iFile: UINT,
58 ppFiledesc: *mut *mut IVssWMFiledesc,
59 ) -> HRESULT,
60 fn GetDatabaseFile(
61 iDBFile: UINT,
62 ppFiledesc: *mut *mut IVssWMFiledesc,
63 ) -> HRESULT,
64 fn GetDatabaseLogFile(
65 iDbLogFile: UINT,
66 ppFiledesc: *mut *mut IVssWMFiledesc,
67 ) -> HRESULT,
68 fn GetDependency(
69 iDependency: UINT,
70 ppDependency: *mut *mut IVssWMDependency,
71 ) -> HRESULT,
0bf4aa26
XL
72}}
73RIDL!{#[uuid(0x902fcf7f, 0xb7fd, 0x42f8, 0x81, 0xf1, 0xb2, 0xe4, 0x00, 0xb1, 0xe5, 0xbd)]
ff7c6d11
XL
74interface IVssExamineWriterMetadata(IVssExamineWriterMetadataVtbl): IUnknown(IUnknownVtbl) {
75 fn GetIdentity(
76 pidInstance: *mut VSS_ID,
77 pidWriter: *mut VSS_ID,
78 pbstrWriterName: *mut BSTR,
79 pUsage: *mut VSS_USAGE_TYPE,
80 pSource: *mut VSS_SOURCE_TYPE,
81 ) -> HRESULT,
82 fn GetFileCounts(
83 pcIncludeFiles: *mut UINT,
84 pcExcludeFiles: *mut UINT,
85 pcComponents: *mut UINT,
86 ) -> HRESULT,
87 fn GetIncludeFile(
88 iFile: UINT,
89 ppFiledesc: *mut *mut IVssWMFiledesc,
90 ) -> HRESULT,
91 fn GetExcludeFile(
92 iFile: UINT,
93 ppFiledesc: *mut *mut IVssWMFiledesc,
94 ) -> HRESULT,
95 fn GetComponent(
96 iComponent: UINT,
97 ppComponent: *mut *mut IVssWMComponent,
98 ) -> HRESULT,
99 fn GetRestoreMethod(
100 pMethod: *mut VSS_RESTOREMETHOD_ENUM,
101 pbstrService: *mut BSTR,
102 pbstrUserProcedure: *mut BSTR,
103 pwriterRestore: *mut VSS_WRITERRESTORE_ENUM,
104 pbRebootRequired: *mut bool,
105 pcMappings: *mut UINT,
106 ) -> HRESULT,
107 fn GetAlternateLocationMapping(
108 iMapping: UINT,
109 ppFiledesc: *mut *mut IVssWMFiledesc,
110 ) -> HRESULT,
111 fn GetBackupSchema(
112 pdwSchemaMask: *mut DWORD,
113 ) -> HRESULT,
114 fn GetDocument(
115 pDoc: *mut c_void,
116 ) -> HRESULT, //TODO IXMLDOMDocument,
117 fn SaveAsXML(
118 pbstrXML: *mut BSTR,
119 ) -> HRESULT,
120 fn LoadFromXML(
121 pbstrXML: *mut BSTR,
122 ) -> HRESULT,
0bf4aa26
XL
123}}
124RIDL!{#[uuid(0x0c0e5ec0, 0xca44, 0x472b, 0xb7, 0x02, 0xe6, 0x52, 0xdb, 0x1c, 0x04, 0x51)]
ff7c6d11
XL
125interface IVssExamineWriterMetadataEx(IVssExamineWriterMetadataExVtbl):
126 IVssExamineWriterMetadata(IVssExamineWriterMetadataVtbl) {
127 fn GetIdentityEx(
128 pidInstance: *mut VSS_ID,
129 pidWriter: *mut VSS_ID,
130 pbstrWriterName: *mut BSTR,
131 pbstrInstanceName: *mut BSTR,
132 pUsage: *mut VSS_USAGE_TYPE,
133 pSource: *mut VSS_SOURCE_TYPE,
134 ) -> HRESULT,
0bf4aa26
XL
135}}
136RIDL!{#[uuid(0xce115780, 0xa611, 0x431b, 0xb5, 0x7f, 0xc3, 0x83, 0x03, 0xab, 0x6a, 0xee)]
ff7c6d11
XL
137interface IVssExamineWriterMetadataEx2(IVssExamineWriterMetadataEx2Vtbl):
138 IVssExamineWriterMetadataEx(IVssExamineWriterMetadataExVtbl) {
139 fn GetVersion(
140 pdwMajorVersion: *mut DWORD,
141 pdwMinorVersion: *mut DWORD,
142 ) -> HRESULT,
143 fn GetExcludeFromSnapshotCount(
144 pcExcludedFromSnapshot: *mut UINT,
145 ) -> HRESULT,
146 fn GetExcludeFromSnapshotFile(
147 iFile: UINT,
148 ppFiledesc: *mut *mut IVssWMFiledesc,
149 ) -> HRESULT,
0bf4aa26 150}}
ff7c6d11
XL
151#[repr(C)]
152pub struct IVssWriterComponentsExt {
153 pub lpVtbl: *const IVssWriterComponentsExtVtbl,
154}
155#[repr(C)]
156pub struct IVssWriterComponentsExtVtbl {
157 pub parent1: IVssWriterComponentsVtbl,
158 pub parent2: IUnknownVtbl,
159}
0bf4aa26 160RIDL!{#[uuid(0x665c1d5f, 0xc218, 0x414d, 0xa0, 0x5d, 0x7f, 0xef, 0x5f, 0x9d, 0x5c, 0x86)]
ff7c6d11
XL
161interface IVssBackupComponents(IVssBackupComponentsVtbl): IUnknown(IUnknownVtbl) {
162 fn GetWriterComponentsCount(
163 pcComponents: *mut UINT,
164 ) -> HRESULT,
165 fn GetWriterComponents(
166 iWriter: UINT,
167 ppWriter: *mut *mut IVssWriterComponentsExt,
168 ) -> HRESULT,
169 fn InitializeForBackup(
170 bstrXML: BSTR,
171 ) -> HRESULT,
172 fn SetBackupState(
173 bSelectComponents: bool,
174 bBackupBootableSystemState: bool,
175 backupType: VSS_BACKUP_TYPE,
176 bPartialFileSupport: bool,
177 ) -> HRESULT,
178 fn InitializeForRestore(
179 bstrXML: BSTR,
180 ) -> HRESULT,
181 fn SetRestoreState(
182 restoreType: VSS_RESTORE_TYPE,
183 ) -> HRESULT,
184 fn GatherWriterMetadata(
185 pAsync: *mut *mut IVssAsync,
186 ) -> HRESULT,
187 fn GetWriterMetadataCount(
188 pcWriters: *mut UINT,
189 ) -> HRESULT,
190 fn GetWriterMetadata(
191 iWriter: UINT,
192 pidInstance: *mut VSS_ID,
193 ppMetadata: *mut *mut IVssExamineWriterMetadata,
194 ) -> HRESULT,
195 fn FreeWriterMetadata() -> HRESULT,
196 fn AddComponent(
197 instanceId: VSS_ID,
198 writerId: VSS_ID,
199 ct: VSS_COMPONENT_TYPE,
200 wszLogicalPath: LPCWSTR,
201 wszComponentName: LPCWSTR,
202 ) -> HRESULT,
203 fn PrepareForBackup(
204 ppAsync: *mut *mut IVssAsync,
205 ) -> HRESULT,
206 fn AbortBackup() -> HRESULT,
207 fn GatherWriterStatus(
208 ppAsync: *mut *mut IVssAsync,
209 ) -> HRESULT,
210 fn GetWriterStatusCount(
211 pcWriters: *mut UINT,
212 ) -> HRESULT,
213 fn FreeWriterStatus() -> HRESULT,
214 fn GetWriterStatus(
215 iWriter: UINT,
216 pidInstance: *mut VSS_ID,
217 pidWriter: *mut VSS_ID,
218 pbstrWriter: *mut BSTR,
219 pnStatus: *mut VSS_WRITER_STATE,
220 phResultFailure: *mut HRESULT,
221 ) -> HRESULT,
222 fn SetBackupSucceeded(
223 instanceId: VSS_ID,
224 writerId: VSS_ID,
225 ct: VSS_COMPONENT_TYPE,
226 wszLogicalPath: LPCWSTR,
227 wszComponentName: LPCWSTR,
228 bSucceded: bool,
229 ) -> HRESULT,
230 fn SetBackupOptions(
231 writerId: VSS_ID,
232 ct: VSS_COMPONENT_TYPE,
233 wszLogicalPath: LPCWSTR,
234 wszComponentName: LPCWSTR,
235 wszBackupOptions: LPCWSTR,
236 ) -> HRESULT,
237 fn SetSelectedForRestore(
238 writerId: VSS_ID,
239 ct: VSS_COMPONENT_TYPE,
240 wszLogicalPath: LPCWSTR,
241 wszComponentName: LPCWSTR,
242 bSelectedForRestore: bool,
243 ) -> HRESULT,
244 fn SetRestoreOptions(
245 writerId: VSS_ID,
246 ct: VSS_COMPONENT_TYPE,
247 wszLogicalPath: LPCWSTR,
248 wszComponentName: LPCWSTR,
249 wszRestoreOptions: LPCWSTR,
250 ) -> HRESULT,
251 fn SetAdditionalRestores(
252 writerId: VSS_ID,
253 ct: VSS_COMPONENT_TYPE,
254 wszLogicalPath: LPCWSTR,
255 wszComponentName: LPCWSTR,
256 bAdditionalRestores: bool,
257 ) -> HRESULT,
258 fn SetPreviousBackupStamp(
259 writerId: VSS_ID,
260 ct: VSS_COMPONENT_TYPE,
261 wszLogicalPath: LPCWSTR,
262 wszComponentName: LPCWSTR,
263 wszPreviousBackupStamp: LPCWSTR,
264 ) -> HRESULT,
265 fn SaveAsXML(
266 pbstrXML: *mut BSTR,
267 ) -> HRESULT,
268 fn BackupComplete(
269 ppAsync: *mut *mut IVssAsync,
270 ) -> HRESULT,
271 fn AddAlternativeLocationMapping(
272 writerId: VSS_ID,
273 ct: VSS_COMPONENT_TYPE,
274 wszLogicalPath: LPCWSTR,
275 wszComponentName: LPCWSTR,
276 wszPath: LPCWSTR,
277 wszFilespec: LPCWSTR,
278 bRecursive: bool,
279 wszDestination: LPCWSTR,
280 ) -> HRESULT,
281 fn AddRestoreSubcomponent(
282 writerId: VSS_ID,
283 ct: VSS_COMPONENT_TYPE,
284 wszLogicalPath: LPCWSTR,
285 wszComponentName: LPCWSTR,
286 wszSubComponentLogicalPath: LPCWSTR,
287 wszSubComponentName: LPCWSTR,
288 bRepair: bool,
289 ) -> HRESULT,
290 fn SetFileRestoreStatus(
291 writerId: VSS_ID,
292 ct: VSS_COMPONENT_TYPE,
293 wszLogicalPath: LPCWSTR,
294 wszComponentName: LPCWSTR,
295 status: VSS_FILE_RESTORE_STATUS,
296 ) -> HRESULT,
297 fn AddNewTarget(
298 writerId: VSS_ID,
299 ct: VSS_COMPONENT_TYPE,
300 wszLogicalPath: LPCWSTR,
301 wszComponentName: LPCWSTR,
302 wszPath: LPCWSTR,
303 wszFileName: LPCWSTR,
304 bRecursive: bool,
305 wszAlternatePath: LPCWSTR,
306 ) -> HRESULT,
307 fn SetRangesFilePath(
308 writerId: VSS_ID,
309 ct: VSS_COMPONENT_TYPE,
310 wszLogicalPath: LPCWSTR,
311 wszComponentName: LPCWSTR,
312 iPartialFile: UINT,
313 wszRangesFile: LPCWSTR,
314 ) -> HRESULT,
315 fn PreRestore(
316 ppAsync: *mut *mut IVssAsync,
317 ) -> HRESULT,
318 fn PostRestore(
319 ppAsync: *mut *mut IVssAsync,
320 ) -> HRESULT,
321 fn SetContext(
322 lContext: LONG,
323 ) -> HRESULT,
324 fn StartSnapshotSet(
325 pSnapshotSetId: *mut VSS_ID,
326 ) -> HRESULT,
327 fn AddToSnapshotSet(
328 pwszVolumeName: VSS_PWSZ,
329 ProviderId: VSS_ID,
330 pidSnapshot: *mut VSS_ID,
331 ) -> HRESULT,
332 fn DoSnapshotSet(
333 ppAsync: *mut *mut IVssAsync,
334 ) -> HRESULT,
335 fn DeleteSnapshots(
336 SourceObjectId: VSS_ID,
337 eSourceObjectType: VSS_OBJECT_TYPE,
338 bForceDelete: BOOL,
339 plDeletedSnapshots: *mut LONG,
340 pNondeletedSnapshotID: *mut VSS_ID,
341 ) -> HRESULT,
342 fn ImportSnapshots(
343 ppAsync: *mut *mut IVssAsync,
344 ) -> HRESULT,
345 fn BreakSnapshotSet(
346 SnapshotSetId: VSS_ID,
347 ) -> HRESULT,
348 fn GetSnapshotProperties(
349 SnapshotId: VSS_ID,
350 pProp: *mut VSS_SNAPSHOT_PROP,
351 ) -> HRESULT,
352 fn Query(
353 QueriedObjectId: VSS_ID,
354 eQueriedObjectType: VSS_OBJECT_TYPE,
355 eReturnedObjectsType: VSS_OBJECT_TYPE,
356 ppEnum: *mut *mut IVssEnumObject,
357 ) -> HRESULT,
358 fn IsVolumeSupported(
359 ProviderId: VSS_ID,
360 pwszVolumeName: VSS_PWSZ,
361 pbSupportedByThisProvider: *mut BOOL,
362 ) -> HRESULT,
363 fn DisableWriterClasses(
364 rgWriterClassId: *const VSS_ID,
365 cClassId: UINT,
366 ) -> HRESULT,
367 fn EnableWriterClasses(
368 rgWriterClassId: *const VSS_ID,
369 cClassId: UINT,
370 ) -> HRESULT,
371 fn DisableWriterInstances(
372 rgWriterInstanceId: *const VSS_ID,
373 cInstanceId: UINT,
374 ) -> HRESULT,
375 fn ExposeSnapshot(
376 SnapshotId: VSS_ID,
377 wszPathFromRoot: VSS_PWSZ,
378 lAttributes: LONG,
379 wszExpose: VSS_PWSZ,
380 pwszExposed: VSS_PWSZ,
381 ) -> HRESULT,
382 fn RevertToSnapshot(
383 SnapshotId: VSS_ID,
384 bForceDismount: BOOL,
385 ) -> HRESULT,
386 fn QueryRevertStatus(
387 pwszVolume: VSS_PWSZ,
388 ppAsync: *mut *mut IVssAsync,
389 ) -> HRESULT,
0bf4aa26
XL
390}}
391RIDL!{#[uuid(0x963f03ad, 0x9e4c, 0x4a34, 0xac, 0x15, 0xe4, 0xb6, 0x17, 0x4e, 0x50, 0x36)]
ff7c6d11
XL
392interface IVssBackupComponentsEx(IVssBackupComponentsExVtbl):
393 IVssBackupComponents(IVssBackupComponentsVtbl) {
394 fn GetWriterMetadataEx(
395 iWriter: UINT,
396 pidInstance: *mut VSS_ID,
397 ppMetadata: *mut *mut IVssExamineWriterMetadataEx,
398 ) -> HRESULT,
399 fn SetSelectedForRestoreEx(
400 writerId: VSS_ID,
401 ct: VSS_COMPONENT_TYPE,
402 wszLogicalPath: LPCWSTR,
403 wszComponentName: LPCWSTR,
404 bSelectedForRestore: bool,
405 instanceId: VSS_ID,
406 ) -> HRESULT,
0bf4aa26
XL
407}}
408RIDL!{#[uuid(0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd, 0x03, 0x2f, 0x9c, 0xa2, 0x30, 0x08, 0x4e)]
ff7c6d11
XL
409interface IVssBackupComponentsEx2(IVssBackupComponentsEx2Vtbl):
410 IVssBackupComponentsEx(IVssBackupComponentsExVtbl) {
411 fn UnexposeSnapshot(
412 snapshotId: VSS_ID,
413 ) -> HRESULT,
414 fn SetAuthoritativeRestore(
415 writerId: VSS_ID,
416 ct: VSS_COMPONENT_TYPE,
417 wszLogicalPath: LPCWSTR,
418 wszComponentName: LPCWSTR,
419 bAuth: bool,
420 ) -> HRESULT,
421 fn SetRollForward(
422 writerId: VSS_ID,
423 ct: VSS_COMPONENT_TYPE,
424 wszLogicalPath: LPCWSTR,
425 wszComponentName: LPCWSTR,
426 rollType: VSS_ROLLFORWARD_TYPE,
427 wszRollForwardPoint: LPCWSTR,
428 ) -> HRESULT,
429 fn SetRestoreName(
430 writerId: VSS_ID,
431 ct: VSS_COMPONENT_TYPE,
432 wszLogicalPath: LPCWSTR,
433 wszComponentName: LPCWSTR,
434 wszRestoreName: LPCWSTR,
435 ) -> HRESULT,
436 fn BreakSnapshotSetEx(
437 SnapshotSetID: VSS_ID,
438 dwBreakFlags: DWORD,
439 ppAsync: *mut *mut IVssAsync,
440 ) -> HRESULT,
441 fn PreFastRecovery(
442 SnapshotSetID: VSS_ID,
443 dwPreFastRecoveryFlags: DWORD,
444 ppAsync: *mut *mut IVssAsync,
445 ) -> HRESULT,
446 fn FastRecovery(
447 SnapshotSetID: VSS_ID,
448 dwFastRecoveryFlags: DWORD,
449 ppAsync: *mut *mut IVssAsync,
450 ) -> HRESULT,
0bf4aa26
XL
451}}
452RIDL!{#[uuid(0xc191bfbc, 0xb602, 0x4675, 0x8b, 0xd1, 0x67, 0xd6, 0x42, 0xf5, 0x29, 0xd5)]
ff7c6d11
XL
453interface IVssBackupComponentsEx3(IVssBackupComponentsEx3Vtbl):
454 IVssBackupComponentsEx2(IVssBackupComponentsEx2Vtbl) {
455 fn GetWriterStatusEx(
456 iWriter: UINT,
457 pidInstance: *mut VSS_ID,
458 pidWriter: *mut VSS_ID,
459 pbstrWriter: *mut BSTR,
460 pnStatus: *mut VSS_WRITER_STATE,
461 phrFailureWriter: *mut HRESULT,
462 phrApplication: *mut HRESULT,
463 pbstrApplicationMessage: *mut BSTR,
464 ) -> HRESULT,
465 fn AddSnapshotToRecoverySet(
466 snapshotId: VSS_ID,
467 dwFlags: DWORD,
468 pwszDestinationVolume: VSS_PWSZ,
469 ) -> HRESULT,
470 fn RecoverSet(
471 dwFlags: DWORD,
472 ppAsync: *mut *mut IVssAsync,
473 ) -> HRESULT,
474 fn GetSessionId(
475 idSession: *mut VSS_ID,
476 ) -> HRESULT,
0bf4aa26
XL
477}}
478RIDL!{#[uuid(0xf434c2fd, 0xb553, 0x4961, 0xa9, 0xf9, 0xa8, 0xe9, 0x0b, 0x67, 0x3e, 0x53)]
ff7c6d11
XL
479interface IVssBackupComponentsEx4(IVssBackupComponentsEx4Vtbl):
480 IVssBackupComponentsEx3(IVssBackupComponentsEx3Vtbl) {
481 fn GetRootAndLogicalPrefixPaths(
482 pwszFilePath: VSS_PWSZ,
483 ppwszRootPath: *mut VSS_PWSZ,
484 ppwszLogicalPrefix: *mut VSS_PWSZ,
485 bNormalizeFQDNforRootPath: BOOL,
486 ) -> HRESULT,
0bf4aa26 487}}
ff7c6d11
XL
488pub const VSS_SW_BOOTABLE_STATE: DWORD = 1;
489extern "system" {
490 #[link_name="CreateVssBackupComponentsInternal"]
491 pub fn CreateVssBackupComponents(
492 ppBackup: *mut *mut IVssBackupComponents,
493 ) -> HRESULT;
494 #[link_name="CreateVssExamineWriterMetadataInternal"]
495 pub fn CreateVssExamineWriterMetadata(
496 bstrXML: BSTR,
497 ppMetadata: *mut *mut IVssExamineWriterMetadata,
498 ) -> HRESULT;
499 #[link_name="IsVolumeSnapshottedInternal"]
500 pub fn IsVolumeSnapshotted(
501 pwszVolumeName: VSS_PWSZ,
502 pbSnapshotsPresent: *mut BOOL,
503 plSnapshotCapability: *mut LONG,
504 ) -> HRESULT;
505 #[link_name="VssFreeSnapshotPropertiesInternal"]
506 pub fn VssFreeSnapshotProperties(
507 pProp: *mut VSS_SNAPSHOT_PROP,
508 );
509 #[link_name="GetProviderMgmtInterfaceInternal"]
510 pub fn GetProviderMgmtInterface(
511 ProviderId: VSS_ID,
512 InterfaceId: IID,
513 ppItf: *mut *mut IUnknown,
514 ) -> HRESULT;
515 #[link_name="ShouldBlockRevertInternal"]
516 pub fn ShouldBlockRevert(
517 wszVolumeName: LPCWSTR,
518 pbBlock: *mut bool,
519 ) -> HRESULT;
520}