2 * Copyright 2014 Hans Leidekker for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 typedef [unique, string] WCHAR
*VSS_PWSZ
;
23 typedef LONGLONG VSS_TIMESTAMP
;
25 typedef enum _VSS_APPLICATION_LEVEL
31 VSS_APP_FRONT_END
= 3,
33 } VSS_APPLICATION_LEVEL
;
35 typedef enum _VSS_BACKUP_TYPE
44 } VSS_BACKUP_TYPE
, *PVSS_BACKUP_TYPE
;
46 typedef enum _VSS_RESTORE_TYPE
52 } VSS_RESTORE_TYPE
, *PVSS_RESTORE_TYPE
;
54 typedef enum _VSS_WRITER_STATE
58 VSS_WS_WAITING_FOR_FREEZE
,
59 VSS_WS_WAITING_FOR_THAW
,
60 VSS_WS_WAITING_FOR_POST_SNAPSHOT
,
61 VSS_WS_WAITING_FOR_BACKUP_COMPLETE
,
62 VSS_WS_FAILED_AT_IDENTIFY
,
63 VSS_WS_FAILED_AT_PREPARE_BACKUP
,
64 VSS_WS_FAILED_AT_PREPARE_SNAPSHOT
,
65 VSS_WS_FAILED_AT_FREEZE
,
66 VSS_WS_FAILED_AT_THAW
,
67 VSS_WS_FAILED_AT_POST_SNAPSHOT
,
68 VSS_WS_FAILED_AT_BACKUP_COMPLETE
,
69 VSS_WS_FAILED_AT_PRE_RESTORE
,
70 VSS_WS_FAILED_AT_POST_RESTORE
,
71 VSS_WS_FAILED_AT_BACKUPSHUTDOWN
,
73 } VSS_WRITER_STATE
, *PVSS_WRITER_STATE
;
75 typedef enum _VSS_OBJECT_TYPE
79 VSS_OBJECT_SNAPSHOT_SET
,
83 } VSS_OBJECT_TYPE
, *PVSS_OBJECT_TYPE
;
85 typedef enum _VSS_SNAPSHOT_STATE
89 VSS_SS_PROCESSING_PREPARE
,
91 VSS_SS_PROCESSING_PRECOMMIT
,
93 VSS_SS_PROCESSING_COMMIT
,
95 VSS_SS_PROCESSING_POSTCOMMIT
,
96 VSS_SS_PROCESSING_PREFINALCOMMIT
,
97 VSS_SS_PREFINALCOMMITTED
,
98 VSS_SS_PROCESSING_POSTFINALCOMMIT
,
102 VSS_SS_POSTCOMMITTED
,
104 } VSS_SNAPSHOT_STATE
, *PVSS_SNAPSHOT_STATE
;
106 typedef struct _VSS_SNAPSHOT_PROP
109 VSS_ID m_SnapshotSetId
;
110 LONG m_lSnapshotsCount
;
111 VSS_PWSZ m_pwszSnapshotDeviceObject
;
112 VSS_PWSZ m_pwszOriginalVolumeName
;
113 VSS_PWSZ m_pwszOriginatingMachine
;
114 VSS_PWSZ m_pwszServiceMachine
;
115 VSS_PWSZ m_pwszExposedName
;
116 VSS_PWSZ m_pwszExposedPath
;
118 LONG m_lSnapshotAttributes
;
119 VSS_TIMESTAMP m_tsCreationTimestamp
;
120 VSS_SNAPSHOT_STATE m_eStatus
;
121 } VSS_SNAPSHOT_PROP
, *PVSS_SNAPSHOT_PROP
;