summaryrefslogtreecommitdiffstats
path: root/third_party/rust/winapi-0.2.8/src/vswriter.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/winapi-0.2.8/src/vswriter.rs')
-rw-r--r--third_party/rust/winapi-0.2.8/src/vswriter.rs241
1 files changed, 241 insertions, 0 deletions
diff --git a/third_party/rust/winapi-0.2.8/src/vswriter.rs b/third_party/rust/winapi-0.2.8/src/vswriter.rs
new file mode 100644
index 0000000000..fd1509c814
--- /dev/null
+++ b/third_party/rust/winapi-0.2.8/src/vswriter.rs
@@ -0,0 +1,241 @@
+// Copyright © 2015, Brian Vincent
+// Licensed under the MIT License <LICENSE.md>
+//! VSS Writer header file
+ENUM!{enum VSS_USAGE_TYPE {
+ VSS_UT_UNDEFINED = 0,
+ VSS_UT_BOOTABLESYSTEMSTATE = 1,
+ VSS_UT_SYSTEMSERVICE = 2,
+ VSS_UT_USERDATA = 3,
+ VSS_UT_OTHER = 4,
+}}
+ENUM!{enum VSS_SOURCE_TYPE {
+ VSS_ST_UNDEFINED = 0,
+ VSS_ST_TRANSACTEDDB = 1,
+ VSS_ST_NONTRANSACTEDDB = 2,
+ VSS_ST_OTHER = 3,
+}}
+ENUM!{enum VSS_RESTOREMETHOD_ENUM {
+ VSS_RME_UNDEFINED = 0,
+ VSS_RME_RESTORE_IF_NOT_THERE = 1,
+ VSS_RME_RESTORE_IF_CAN_REPLACE = 2,
+ VSS_RME_STOP_RESTORE_START = 3,
+ VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4,
+ VSS_RME_RESTORE_AT_REBOOT = 5,
+ VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6,
+ VSS_RME_CUSTOM = 7,
+ VSS_RME_RESTORE_STOP_START = 8,
+}}
+ENUM!{enum VSS_WRITERRESTORE_ENUM {
+ VSS_WRE_UNDEFINED = 0,
+ VSS_WRE_NEVER = 1,
+ VSS_WRE_IF_REPLACE_FAILS = 2,
+ VSS_WRE_ALWAYS = 3,
+}}
+ENUM!{enum VSS_COMPONENT_TYPE {
+ VSS_CT_UNDEFINED = 0,
+ VSS_CT_DATABASE = 1,
+ VSS_CT_FILEGROUP = 2,
+}}
+ENUM!{enum VSS_ALTERNATE_WRITER_STATE {
+ VSS_AWS_UNDEFINED = 0,
+ VSS_AWS_NO_ALTERNATE_WRITER = 1,
+ VSS_AWS_ALTERNATE_WRITER_EXISTS = 2,
+ VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3,
+}}
+pub type VSS_SUBSCRIBE_MASK = ::DWORD;
+pub const VSS_SM_POST_SNAPSHOT_FLAG: ::DWORD = 0x00000001;
+pub const VSS_SM_BACKUP_EVENTS_FLAG: ::DWORD = 0x00000002;
+pub const VSS_SM_RESTORE_EVENTS_FLAG: ::DWORD = 0x00000004;
+pub const VSS_SM_IO_THROTTLING_FLAG: ::DWORD = 0x00000008;
+pub const VSS_SM_ALL_FLAGS: ::DWORD = 0xffffffff;
+ENUM!{enum VSS_RESTORE_TARGET {
+ VSS_RT_UNDEFINED = 0,
+ VSS_RT_ORIGINAL = 1,
+ VSS_RT_ALTERNATE = 2,
+ VSS_RT_DIRECTED = 3,
+ VSS_RT_ORIGINAL_LOCATION = 4,
+}}
+ENUM!{enum VSS_FILE_RESTORE_STATUS {
+ VSS_RS_UNDEFINED = 0,
+ VSS_RS_NONE = 1,
+ VSS_RS_ALL = 2,
+ VSS_RS_FAILED = 3,
+}}
+pub type VSS_COMPONENT_FLAGS = ::DWORD;
+pub const VSS_CF_BACKUP_RECOVERY: ::DWORD = 0x00000001;
+pub const VSS_CF_APP_ROLLBACK_RECOVERY: ::DWORD = 0x00000002;
+pub const VSS_CF_NOT_SYSTEM_STATE: ::DWORD = 0x00000004;
+RIDL!(
+interface IVssWMFiledesc(IVssWMFiledescVtbl): IUnknown(IUnknownVtbl) {
+ fn GetPath(&mut self, pbstrPath: *mut ::BSTR) -> ::HRESULT,
+ fn GetFilespec(&mut self, pbstrFilespec: *mut ::BSTR) -> ::HRESULT,
+ fn GetRecursive(&mut self, pbRecursive: *mut bool) -> ::HRESULT,
+ fn GetAlternateLocation(&mut self, pbstrAlternateLocation: *mut ::BSTR) -> ::HRESULT,
+ fn GetBackupTypeMask(&mut self, pdwTypeMask: *mut ::DWORD) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssWMDependency(IVssWMDependencyVtbl): IUnknown(IUnknownVtbl) {
+ fn GetWriterId(&mut self, pWriterId: *mut ::VSS_ID) -> ::HRESULT,
+ fn GetLogicalPath(&mut self, pbstrLogicalPath: *mut ::BSTR) -> ::HRESULT,
+ fn GetComponentName(&mut self, pbstrComponentName: *mut ::BSTR) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssComponent(IVssComponentVtbl): IUnknown(IUnknownVtbl) {
+ fn GetLogicalPath(&mut self, pbstrPath: *mut ::BSTR) -> ::HRESULT,
+ fn GetComponentType(&mut self, pct: *mut ::VSS_COMPONENT_TYPE) -> ::HRESULT,
+ fn GetComponentName(&mut self, pbstrName: *mut ::BSTR) -> ::HRESULT,
+ fn GetBackupSucceeded(&mut self, pbSucceeded: *mut bool) -> ::HRESULT,
+ fn GetAlternateLocationMappingCount(&mut self, pcMappings: *mut ::UINT) -> ::HRESULT,
+ fn GetAlternateLocationMapping(
+ &mut self, iMapping: ::UINT, ppFiledesc: *mut *mut ::IVssWMFiledesc
+ ) -> ::HRESULT,
+ fn SetBackupMetadata(&mut self, wszData: ::LPCWSTR) -> ::HRESULT,
+ fn GetBackupMetadata(&mut self, pbstrData: *mut ::BSTR) -> ::HRESULT,
+ fn AddPartialFile(
+ &mut self, wszPath: ::LPCWSTR, wszFilename: ::LPCWSTR, wszRanges: ::LPCWSTR,
+ wszMetadata: ::LPCWSTR
+ ) -> ::HRESULT,
+ fn GetPartialFileCount(&mut self, pcPartialFiles: *mut ::UINT) -> ::HRESULT,
+ fn GetPartialFile(
+ &mut self, iPartialFile: ::UINT, pbstrPath: *mut ::BSTR, pbstrFilename: *mut ::BSTR,
+ pbstrRange: *mut ::BSTR, pbstrMetadata: *mut ::BSTR
+ ) -> ::HRESULT,
+ fn IsSelectedForRestore(&mut self, pbSelectedForRestore: *mut bool) -> ::HRESULT,
+ fn GetAdditionalRestores(&mut self, pbAdditionalRestores: *mut bool) -> ::HRESULT,
+ fn GetNewTargetCount(&mut self, pcNewTarget: *mut ::UINT) -> ::HRESULT,
+ fn GetNewTarget(
+ &mut self, iNewTarget: ::UINT, ppFiledesc: *mut *mut ::IVssWMFiledesc
+ ) -> ::HRESULT,
+ fn AddDirectedTarget(
+ &mut self, wszSourcePath: ::LPCWSTR, wszSourceFilename: ::LPCWSTR,
+ wszSourceRangeList: ::LPCWSTR, wszDestinationPath: ::LPCWSTR,
+ wszDestinationFilename: ::LPCWSTR, wszDestinationRangeList: ::LPCWSTR
+ ) -> ::HRESULT,
+ fn GetDirectedTargetCount(&mut self, pcDirectedTarget: *mut ::UINT) -> ::HRESULT,
+ fn GetDirectedTarget(
+ &mut self, iDirectedTarget: ::UINT, pbstrSourcePath: *mut ::BSTR,
+ pbstrSourceFileName: *mut ::BSTR, pbstrSourceRangeList: *mut ::BSTR,
+ pbstrDestinationPath: *mut ::BSTR, pbstrDestinationFilename: *mut ::BSTR,
+ pbstrDestinationRangeList: *mut ::BSTR
+ ) -> ::HRESULT,
+ fn SetRestoreMetadata(&mut self, wszRestoreMetadata: ::LPCWSTR) -> ::HRESULT,
+ fn GetRestoreMetadata(&mut self, pbstrRestoreMetadata: *mut ::BSTR) -> ::HRESULT,
+ fn SetRestoreTarget(&mut self, target: ::VSS_RESTORE_TARGET) -> ::HRESULT,
+ fn GetRestoreTarget(&mut self, pTarget: *mut ::VSS_RESTORE_TARGET) -> ::HRESULT,
+ fn SetPreRestoreFailureMsg(&mut self, wszPreRestoreFailureMsg: ::LPCWSTR) -> ::HRESULT,
+ fn GetPreRestoreFailureMsg(&mut self, pbstrPreRestoreFailureMsg: *mut ::BSTR) -> ::HRESULT,
+ fn SetPostRestoreFailureMsg(&mut self, wszPostRestoreFailureMsg: ::LPCWSTR) -> ::HRESULT,
+ fn GetPostRestoreFailureMsg(&mut self, pbstrPostRestoreFailureMsg: *mut ::BSTR) -> ::HRESULT,
+ fn SetBackupStamp(&mut self, wszBackupStamp: ::LPCWSTR) -> ::HRESULT,
+ fn GetBackupStamp(&mut self, pbstrBackupStamp: *mut ::BSTR) -> ::HRESULT,
+ fn GetPreviousBackupStamp(&mut self, pbstrBackupStamp: *mut ::BSTR) -> ::HRESULT,
+ fn GetBackupOptions(&mut self, pbstrBackupOptions: *mut ::BSTR) -> ::HRESULT,
+ fn GetRestoreOptions(&mut self, pbstrRestoreOptions: *mut ::BSTR) -> ::HRESULT,
+ fn GetRestoreSubcomponentCount(&mut self, pcRestoreSubcomponent: *mut ::UINT) -> ::HRESULT,
+ fn GetRestoreSubcomponent(
+ &mut self, iComponent: ::UINT, pbstrLogicalPath: *mut ::BSTR,
+ pbstrComponentName: *mut ::BSTR, pbRepair: *mut bool
+ ) -> ::HRESULT,
+ fn GetFileRestoreStatus(&mut self, pStatus: *mut VSS_FILE_RESTORE_STATUS) -> ::HRESULT,
+ fn AddDifferencedFilesByLastModifyTime(
+ &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: ::BOOL,
+ ftLastModifyTime: ::FILETIME
+ ) -> ::HRESULT,
+ fn AddDifferencedFilesByLastModifyLSN(
+ &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: ::BOOL,
+ bstrLsnString: ::BSTR
+ ) -> ::HRESULT,
+ fn GetDifferencedFilesCount(&mut self, pcDifferencedFiles: *mut ::UINT) -> ::HRESULT,
+ fn GetDifferencedFile(
+ &mut self, iDifferencedFile: ::UINT, pbstrPath: *mut ::BSTR, pbstrFilespec: *mut ::BSTR,
+ pbRecursive: *mut ::BOOL, pbstrLsnString: *mut ::BSTR, pftLastModifyTime: *mut ::FILETIME
+ ) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssWriterComponents(IVssWriterComponentsVtbl) {
+ fn GetComponentCount(&mut self, pcComponents: *mut ::UINT) -> ::HRESULT,
+ fn GetWriterInfo(
+ &mut self, pidInstance: *mut ::VSS_ID, pidWriter: *mut ::VSS_ID
+ ) -> ::HRESULT,
+ fn GetComponent(
+ &mut self, iComponent: ::UINT, ppComponent: *mut *mut ::IVssComponent
+ ) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssComponentEx(IVssComponentExVtbl): IVssComponent(IVssComponentVtbl) {
+ fn SetPrepareForBackupFailureMsg(&mut self, wszFailureMsg: ::LPCWSTR) -> ::HRESULT,
+ fn SetPostSnapshotFailureMsg(&mut self, wszFailureMsg: ::LPCWSTR) -> ::HRESULT,
+ fn GetPrepareForBackupFailureMsg(&mut self, pbstrFailureMsg: *mut ::BSTR) -> ::HRESULT,
+ fn GetPostSnapshotFailureMsg(&mut self, pbstrFailureMsg: *mut ::BSTR) -> ::HRESULT,
+ fn GetAuthoritativeRestore(&mut self, pbAuth: *mut bool) -> ::HRESULT,
+ fn GetRollForward(
+ &mut self, pRollType: *mut ::VSS_ROLLFORWARD_TYPE, pbstrPoint: *mut ::BSTR
+ ) -> ::HRESULT,
+ fn GetRestoreName(&mut self, pbstrName: *mut ::BSTR) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssComponentEx2(IVssComponentEx2Vtbl): IVssComponentEx(IVssComponentExVtbl) {
+ fn SetFailure(
+ &mut self, hr: ::HRESULT, hrApplication: ::HRESULT, wszApplicationMessage: ::LPCWSTR,
+ dwReserved: ::DWORD
+ ) -> ::HRESULT,
+ fn GetFailure(
+ &mut self, phr: *mut ::HRESULT, phrApplication: *mut ::HRESULT,
+ pbstrApplicationMessage: *mut ::BSTR, pdwReserved: *mut ::DWORD
+ ) -> ::HRESULT
+}
+);
+RIDL!(
+interface IVssCreateWriterMetadata(IVssCreateWriterMetadataVtbl) {
+ fn AddIncludeFiles(
+ &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool,
+ wszAlternateLocation: ::LPCWSTR
+ ) -> ::HRESULT,
+ fn AddExcludeFiles(
+ &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool
+ ) -> ::HRESULT,
+ fn AddComponent(
+ &mut self, ct: ::VSS_COMPONENT_TYPE, wszLogicalPath: ::LPCWSTR,
+ wszComponentName: ::LPCWSTR, wszCaption: ::LPCWSTR, pbIcon: *const ::BYTE, cbIcon: ::UINT,
+ bRestoreMetadata: bool, bNotifyOnBackupComplete: bool, bSelectableForRestore: bool,
+ dwComponentFlags: ::DWORD
+ ) -> ::HRESULT,
+ fn AddDatabaseFiles(
+ &mut self, wszLogicalPath: ::LPCWSTR, wszDatabaseName: ::LPCWSTR, wszPath: ::LPCWSTR,
+ wszFilespec: ::LPCWSTR, dwBackupTypeMask: ::DWORD
+ ) -> ::HRESULT,
+ fn AddDatabaseLogFiles(&mut self, wszLogicalPath: ::LPCWSTR, wszDatabaseName: ::LPCWSTR,
+ wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, dwBackupTypeMask: ::DWORD
+ ) -> ::HRESULT,
+ fn AddFilesToFileGroup(&mut self, wszLogicalPath: ::LPCWSTR, wszGroupName: ::LPCWSTR,
+ wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool,
+ wszAlternateLocation: ::LPCWSTR, dwBackupTypeMask: ::DWORD
+ ) -> ::HRESULT,
+ fn SetRestoreMethod(&mut self, method: ::VSS_RESTOREMETHOD_ENUM, wszService: ::LPCWSTR,
+ wszUserProcedure: ::LPCWSTR, writerRestore: ::VSS_WRITERRESTORE_ENUM,
+ bRebootRequired: bool
+ ) -> ::HRESULT,
+ fn AddAlternateLocationMapping(&mut self, wszSourcePath: ::LPCWSTR,
+ wszSourceFilespec: ::LPCWSTR, bRecursive: bool, wszDestination: ::LPCWSTR
+ ) -> ::HRESULT,
+ fn AddComponentDependency(&mut self, wszForLogicalPath: ::LPCWSTR,
+ wszForComponentName: ::LPCWSTR, onWriterId: ::VSS_ID, wszOnLogicalPath: ::LPCWSTR,
+ wszOnComponentName: ::LPCWSTR
+ ) -> ::HRESULT,
+ fn SetBackupSchema(&mut self, dwSchemaMask: ::DWORD) -> ::HRESULT,
+ fn GetDocument(&mut self, pDoc: *mut *mut ::VOID) -> ::HRESULT, //TODO IXMLDOMDocument
+ fn SaveAsXML(&mut self, pbstrXML: *mut ::BSTR) -> ::HRESULT
+}
+);
+//IVssCreateWriterMetadataEx
+//IVssWriterImpl
+//IVssCreateExpressWriterMetadata
+//IVssExpressWriter
+//CVssWriter
+//CVssWriterEx
+//CVssWriterEx2