1/* 2 * Copyright 2014 Hans Leidekker for CodeWeavers 3 * 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. 8 * 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. 13 * 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 17 */ 18 19import "oaidl.idl"; 20 21typedef GUID VSS_ID; 22typedef [unique, string] WCHAR *VSS_PWSZ; 23typedef LONGLONG VSS_TIMESTAMP; 24 25typedef enum _VSS_APPLICATION_LEVEL 26{ 27 VSS_APP_AUTO = -1, 28 VSS_APP_UNKNOWN = 0, 29 VSS_APP_SYSTEM = 1, 30 VSS_APP_BACK_END = 2, 31 VSS_APP_FRONT_END = 3, 32 VSS_APP_SYSTEM_RM = 4 33} VSS_APPLICATION_LEVEL; 34 35typedef enum _VSS_BACKUP_TYPE 36{ 37 VSS_BT_UNDEFINED, 38 VSS_BT_FULL, 39 VSS_BT_INCREMENTAL, 40 VSS_BT_DIFFERENTIAL, 41 VSS_BT_LOG, 42 VSS_BT_COPY, 43 VSS_BT_OTHER 44} VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE; 45 46typedef enum _VSS_RESTORE_TYPE 47{ 48 VSS_RTYPE_UNDEFINED, 49 VSS_RTYPE_BY_COPY, 50 VSS_RTYPE_IMPORT, 51 VSS_RTYPE_OTHER 52} VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE; 53 54typedef enum _VSS_WRITER_STATE 55{ 56 VSS_WS_UNKNOWN, 57 VSS_WS_STABLE, 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, 72 VSS_WS_COUNT 73} VSS_WRITER_STATE, *PVSS_WRITER_STATE; 74 75typedef enum _VSS_OBJECT_TYPE 76{ 77 VSS_OBJECT_UNKNOWN, 78 VSS_OBJECT_NONE, 79 VSS_OBJECT_SNAPSHOT_SET, 80 VSS_OBJECT_SNAPSHOT, 81 VSS_OBJECT_PROVIDER, 82 VSS_OBJECT_TYPE_COUNT 83} VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE; 84 85typedef enum _VSS_SNAPSHOT_STATE 86{ 87 VSS_SS_UNKNOWN = 0, 88 VSS_SS_PREPARING, 89 VSS_SS_PROCESSING_PREPARE, 90 VSS_SS_PREPARED, 91 VSS_SS_PROCESSING_PRECOMMIT, 92 VSS_SS_PRECOMMITTED, 93 VSS_SS_PROCESSING_COMMIT, 94 VSS_SS_COMMITTED, 95 VSS_SS_PROCESSING_POSTCOMMIT, 96 VSS_SS_PROCESSING_PREFINALCOMMIT, 97 VSS_SS_PREFINALCOMMITTED, 98 VSS_SS_PROCESSING_POSTFINALCOMMIT, 99 VSS_SS_CREATED, 100 VSS_SS_ABORTED, 101 VSS_SS_DELETED, 102 VSS_SS_POSTCOMMITTED, 103 VSS_SS_COUNT 104} VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE; 105 106typedef struct _VSS_SNAPSHOT_PROP 107{ 108 VSS_ID m_SnapshotId; 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; 117 VSS_ID m_ProviderId; 118 LONG m_lSnapshotAttributes; 119 VSS_TIMESTAMP m_tsCreationTimestamp; 120 VSS_SNAPSHOT_STATE m_eStatus; 121} VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP; 122