| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Declaration of backup interfaces. |
| use ctypes::c_void; |
| use shared::guiddef::IID; |
| use shared::minwindef::{BOOL, BYTE, DWORD, UINT}; |
| use shared::wtypes::BSTR; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::vss::{ |
| IVssAsync, IVssEnumObject, VSS_BACKUP_TYPE, VSS_ID, VSS_OBJECT_TYPE, VSS_PWSZ, |
| VSS_RESTORE_TYPE, VSS_ROLLFORWARD_TYPE, VSS_SNAPSHOT_PROP, VSS_WRITER_STATE |
| }; |
| use um::vswriter::{ |
| IVssWMDependency, IVssWMFiledesc, IVssWriterComponentsVtbl, VSS_COMPONENT_TYPE, |
| VSS_FILE_RESTORE_STATUS, VSS_RESTOREMETHOD_ENUM, VSS_SOURCE_TYPE, VSS_USAGE_TYPE, |
| VSS_WRITERRESTORE_ENUM |
| }; |
| use um::winnt::{HRESULT, LONG, LPCWSTR}; |
| DEFINE_GUID!{IID_IVssExamineWriterMetadata, |
| 0x902fcf7f, 0xb7fd, 0x42f8, 0x81, 0xf1, 0xb2, 0xe4, 0x00, 0xb1, 0xe5, 0xbd} |
| DEFINE_GUID!{IID_IVssExamineWriterMetadataEx, |
| 0x0c0e5ec0, 0xca44, 0x472b, 0xb7, 0x02, 0xe6, 0x52, 0xdb, 0x1c, 0x04, 0x51} |
| DEFINE_GUID!{IID_IVssBackupComponents, |
| 0x665c1d5f, 0xc218, 0x414d, 0xa0, 0x5d, 0x7f, 0xef, 0x5f, 0x9d, 0x5c, 0x86} |
| DEFINE_GUID!{IID_IVssBackupComponentsEx, |
| 0x963f03ad, 0x9e4c, 0x4a34, 0xac, 0x15, 0xe4, 0xb6, 0x17, 0x4e, 0x50, 0x36} |
| STRUCT!{struct VSS_COMPONENTINFO { |
| type_: VSS_COMPONENT_TYPE, // type is a keyword in rust |
| bstrLogicalPath: BSTR, |
| bstrComponentName: BSTR, |
| bstrCaption: BSTR, |
| pbIcon: *mut BYTE, |
| cbIcon: UINT, |
| bRestoreMetadata: bool, |
| bNotifyOnBackupComplete: bool, |
| bSelectable: bool, |
| bSelectableForRestore: bool, |
| dwComponentFlags: DWORD, |
| cFileCount: UINT, |
| cDatabases: UINT, |
| cLogFiles: UINT, |
| cDependencies: UINT, |
| }} |
| pub type PVSSCOMPONENTINFO = *const VSS_COMPONENTINFO; |
| RIDL!{#[uuid(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)] |
| interface IVssWMComponent(IVssWMComponentVtbl): IUnknown(IUnknownVtbl) { |
| fn GetComponentInfo( |
| ppInfo: *mut PVSSCOMPONENTINFO, |
| ) -> HRESULT, |
| fn FreeComponentInfo( |
| pInfo: PVSSCOMPONENTINFO, |
| ) -> HRESULT, |
| fn GetFile( |
| iFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetDatabaseFile( |
| iDBFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetDatabaseLogFile( |
| iDbLogFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetDependency( |
| iDependency: UINT, |
| ppDependency: *mut *mut IVssWMDependency, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x902fcf7f, 0xb7fd, 0x42f8, 0x81, 0xf1, 0xb2, 0xe4, 0x00, 0xb1, 0xe5, 0xbd)] |
| interface IVssExamineWriterMetadata(IVssExamineWriterMetadataVtbl): IUnknown(IUnknownVtbl) { |
| fn GetIdentity( |
| pidInstance: *mut VSS_ID, |
| pidWriter: *mut VSS_ID, |
| pbstrWriterName: *mut BSTR, |
| pUsage: *mut VSS_USAGE_TYPE, |
| pSource: *mut VSS_SOURCE_TYPE, |
| ) -> HRESULT, |
| fn GetFileCounts( |
| pcIncludeFiles: *mut UINT, |
| pcExcludeFiles: *mut UINT, |
| pcComponents: *mut UINT, |
| ) -> HRESULT, |
| fn GetIncludeFile( |
| iFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetExcludeFile( |
| iFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetComponent( |
| iComponent: UINT, |
| ppComponent: *mut *mut IVssWMComponent, |
| ) -> HRESULT, |
| fn GetRestoreMethod( |
| pMethod: *mut VSS_RESTOREMETHOD_ENUM, |
| pbstrService: *mut BSTR, |
| pbstrUserProcedure: *mut BSTR, |
| pwriterRestore: *mut VSS_WRITERRESTORE_ENUM, |
| pbRebootRequired: *mut bool, |
| pcMappings: *mut UINT, |
| ) -> HRESULT, |
| fn GetAlternateLocationMapping( |
| iMapping: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| fn GetBackupSchema( |
| pdwSchemaMask: *mut DWORD, |
| ) -> HRESULT, |
| fn GetDocument( |
| pDoc: *mut c_void, |
| ) -> HRESULT, //TODO IXMLDOMDocument, |
| fn SaveAsXML( |
| pbstrXML: *mut BSTR, |
| ) -> HRESULT, |
| fn LoadFromXML( |
| pbstrXML: *mut BSTR, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x0c0e5ec0, 0xca44, 0x472b, 0xb7, 0x02, 0xe6, 0x52, 0xdb, 0x1c, 0x04, 0x51)] |
| interface IVssExamineWriterMetadataEx(IVssExamineWriterMetadataExVtbl): |
| IVssExamineWriterMetadata(IVssExamineWriterMetadataVtbl) { |
| fn GetIdentityEx( |
| pidInstance: *mut VSS_ID, |
| pidWriter: *mut VSS_ID, |
| pbstrWriterName: *mut BSTR, |
| pbstrInstanceName: *mut BSTR, |
| pUsage: *mut VSS_USAGE_TYPE, |
| pSource: *mut VSS_SOURCE_TYPE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xce115780, 0xa611, 0x431b, 0xb5, 0x7f, 0xc3, 0x83, 0x03, 0xab, 0x6a, 0xee)] |
| interface IVssExamineWriterMetadataEx2(IVssExamineWriterMetadataEx2Vtbl): |
| IVssExamineWriterMetadataEx(IVssExamineWriterMetadataExVtbl) { |
| fn GetVersion( |
| pdwMajorVersion: *mut DWORD, |
| pdwMinorVersion: *mut DWORD, |
| ) -> HRESULT, |
| fn GetExcludeFromSnapshotCount( |
| pcExcludedFromSnapshot: *mut UINT, |
| ) -> HRESULT, |
| fn GetExcludeFromSnapshotFile( |
| iFile: UINT, |
| ppFiledesc: *mut *mut IVssWMFiledesc, |
| ) -> HRESULT, |
| }} |
| #[repr(C)] |
| pub struct IVssWriterComponentsExt { |
| pub lpVtbl: *const IVssWriterComponentsExtVtbl, |
| } |
| #[repr(C)] |
| pub struct IVssWriterComponentsExtVtbl { |
| pub parent1: IVssWriterComponentsVtbl, |
| pub parent2: IUnknownVtbl, |
| } |
| RIDL!{#[uuid(0x665c1d5f, 0xc218, 0x414d, 0xa0, 0x5d, 0x7f, 0xef, 0x5f, 0x9d, 0x5c, 0x86)] |
| interface IVssBackupComponents(IVssBackupComponentsVtbl): IUnknown(IUnknownVtbl) { |
| fn GetWriterComponentsCount( |
| pcComponents: *mut UINT, |
| ) -> HRESULT, |
| fn GetWriterComponents( |
| iWriter: UINT, |
| ppWriter: *mut *mut IVssWriterComponentsExt, |
| ) -> HRESULT, |
| fn InitializeForBackup( |
| bstrXML: BSTR, |
| ) -> HRESULT, |
| fn SetBackupState( |
| bSelectComponents: bool, |
| bBackupBootableSystemState: bool, |
| backupType: VSS_BACKUP_TYPE, |
| bPartialFileSupport: bool, |
| ) -> HRESULT, |
| fn InitializeForRestore( |
| bstrXML: BSTR, |
| ) -> HRESULT, |
| fn SetRestoreState( |
| restoreType: VSS_RESTORE_TYPE, |
| ) -> HRESULT, |
| fn GatherWriterMetadata( |
| pAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn GetWriterMetadataCount( |
| pcWriters: *mut UINT, |
| ) -> HRESULT, |
| fn GetWriterMetadata( |
| iWriter: UINT, |
| pidInstance: *mut VSS_ID, |
| ppMetadata: *mut *mut IVssExamineWriterMetadata, |
| ) -> HRESULT, |
| fn FreeWriterMetadata() -> HRESULT, |
| fn AddComponent( |
| instanceId: VSS_ID, |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| ) -> HRESULT, |
| fn PrepareForBackup( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn AbortBackup() -> HRESULT, |
| fn GatherWriterStatus( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn GetWriterStatusCount( |
| pcWriters: *mut UINT, |
| ) -> HRESULT, |
| fn FreeWriterStatus() -> HRESULT, |
| fn GetWriterStatus( |
| iWriter: UINT, |
| pidInstance: *mut VSS_ID, |
| pidWriter: *mut VSS_ID, |
| pbstrWriter: *mut BSTR, |
| pnStatus: *mut VSS_WRITER_STATE, |
| phResultFailure: *mut HRESULT, |
| ) -> HRESULT, |
| fn SetBackupSucceeded( |
| instanceId: VSS_ID, |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| bSucceded: bool, |
| ) -> HRESULT, |
| fn SetBackupOptions( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszBackupOptions: LPCWSTR, |
| ) -> HRESULT, |
| fn SetSelectedForRestore( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| bSelectedForRestore: bool, |
| ) -> HRESULT, |
| fn SetRestoreOptions( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszRestoreOptions: LPCWSTR, |
| ) -> HRESULT, |
| fn SetAdditionalRestores( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| bAdditionalRestores: bool, |
| ) -> HRESULT, |
| fn SetPreviousBackupStamp( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszPreviousBackupStamp: LPCWSTR, |
| ) -> HRESULT, |
| fn SaveAsXML( |
| pbstrXML: *mut BSTR, |
| ) -> HRESULT, |
| fn BackupComplete( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn AddAlternativeLocationMapping( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszPath: LPCWSTR, |
| wszFilespec: LPCWSTR, |
| bRecursive: bool, |
| wszDestination: LPCWSTR, |
| ) -> HRESULT, |
| fn AddRestoreSubcomponent( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszSubComponentLogicalPath: LPCWSTR, |
| wszSubComponentName: LPCWSTR, |
| bRepair: bool, |
| ) -> HRESULT, |
| fn SetFileRestoreStatus( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| status: VSS_FILE_RESTORE_STATUS, |
| ) -> HRESULT, |
| fn AddNewTarget( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszPath: LPCWSTR, |
| wszFileName: LPCWSTR, |
| bRecursive: bool, |
| wszAlternatePath: LPCWSTR, |
| ) -> HRESULT, |
| fn SetRangesFilePath( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| iPartialFile: UINT, |
| wszRangesFile: LPCWSTR, |
| ) -> HRESULT, |
| fn PreRestore( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn PostRestore( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn SetContext( |
| lContext: LONG, |
| ) -> HRESULT, |
| fn StartSnapshotSet( |
| pSnapshotSetId: *mut VSS_ID, |
| ) -> HRESULT, |
| fn AddToSnapshotSet( |
| pwszVolumeName: VSS_PWSZ, |
| ProviderId: VSS_ID, |
| pidSnapshot: *mut VSS_ID, |
| ) -> HRESULT, |
| fn DoSnapshotSet( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn DeleteSnapshots( |
| SourceObjectId: VSS_ID, |
| eSourceObjectType: VSS_OBJECT_TYPE, |
| bForceDelete: BOOL, |
| plDeletedSnapshots: *mut LONG, |
| pNondeletedSnapshotID: *mut VSS_ID, |
| ) -> HRESULT, |
| fn ImportSnapshots( |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn BreakSnapshotSet( |
| SnapshotSetId: VSS_ID, |
| ) -> HRESULT, |
| fn GetSnapshotProperties( |
| SnapshotId: VSS_ID, |
| pProp: *mut VSS_SNAPSHOT_PROP, |
| ) -> HRESULT, |
| fn Query( |
| QueriedObjectId: VSS_ID, |
| eQueriedObjectType: VSS_OBJECT_TYPE, |
| eReturnedObjectsType: VSS_OBJECT_TYPE, |
| ppEnum: *mut *mut IVssEnumObject, |
| ) -> HRESULT, |
| fn IsVolumeSupported( |
| ProviderId: VSS_ID, |
| pwszVolumeName: VSS_PWSZ, |
| pbSupportedByThisProvider: *mut BOOL, |
| ) -> HRESULT, |
| fn DisableWriterClasses( |
| rgWriterClassId: *const VSS_ID, |
| cClassId: UINT, |
| ) -> HRESULT, |
| fn EnableWriterClasses( |
| rgWriterClassId: *const VSS_ID, |
| cClassId: UINT, |
| ) -> HRESULT, |
| fn DisableWriterInstances( |
| rgWriterInstanceId: *const VSS_ID, |
| cInstanceId: UINT, |
| ) -> HRESULT, |
| fn ExposeSnapshot( |
| SnapshotId: VSS_ID, |
| wszPathFromRoot: VSS_PWSZ, |
| lAttributes: LONG, |
| wszExpose: VSS_PWSZ, |
| pwszExposed: VSS_PWSZ, |
| ) -> HRESULT, |
| fn RevertToSnapshot( |
| SnapshotId: VSS_ID, |
| bForceDismount: BOOL, |
| ) -> HRESULT, |
| fn QueryRevertStatus( |
| pwszVolume: VSS_PWSZ, |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x963f03ad, 0x9e4c, 0x4a34, 0xac, 0x15, 0xe4, 0xb6, 0x17, 0x4e, 0x50, 0x36)] |
| interface IVssBackupComponentsEx(IVssBackupComponentsExVtbl): |
| IVssBackupComponents(IVssBackupComponentsVtbl) { |
| fn GetWriterMetadataEx( |
| iWriter: UINT, |
| pidInstance: *mut VSS_ID, |
| ppMetadata: *mut *mut IVssExamineWriterMetadataEx, |
| ) -> HRESULT, |
| fn SetSelectedForRestoreEx( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| bSelectedForRestore: bool, |
| instanceId: VSS_ID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd, 0x03, 0x2f, 0x9c, 0xa2, 0x30, 0x08, 0x4e)] |
| interface IVssBackupComponentsEx2(IVssBackupComponentsEx2Vtbl): |
| IVssBackupComponentsEx(IVssBackupComponentsExVtbl) { |
| fn UnexposeSnapshot( |
| snapshotId: VSS_ID, |
| ) -> HRESULT, |
| fn SetAuthoritativeRestore( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| bAuth: bool, |
| ) -> HRESULT, |
| fn SetRollForward( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| rollType: VSS_ROLLFORWARD_TYPE, |
| wszRollForwardPoint: LPCWSTR, |
| ) -> HRESULT, |
| fn SetRestoreName( |
| writerId: VSS_ID, |
| ct: VSS_COMPONENT_TYPE, |
| wszLogicalPath: LPCWSTR, |
| wszComponentName: LPCWSTR, |
| wszRestoreName: LPCWSTR, |
| ) -> HRESULT, |
| fn BreakSnapshotSetEx( |
| SnapshotSetID: VSS_ID, |
| dwBreakFlags: DWORD, |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn PreFastRecovery( |
| SnapshotSetID: VSS_ID, |
| dwPreFastRecoveryFlags: DWORD, |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn FastRecovery( |
| SnapshotSetID: VSS_ID, |
| dwFastRecoveryFlags: DWORD, |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xc191bfbc, 0xb602, 0x4675, 0x8b, 0xd1, 0x67, 0xd6, 0x42, 0xf5, 0x29, 0xd5)] |
| interface IVssBackupComponentsEx3(IVssBackupComponentsEx3Vtbl): |
| IVssBackupComponentsEx2(IVssBackupComponentsEx2Vtbl) { |
| fn GetWriterStatusEx( |
| iWriter: UINT, |
| pidInstance: *mut VSS_ID, |
| pidWriter: *mut VSS_ID, |
| pbstrWriter: *mut BSTR, |
| pnStatus: *mut VSS_WRITER_STATE, |
| phrFailureWriter: *mut HRESULT, |
| phrApplication: *mut HRESULT, |
| pbstrApplicationMessage: *mut BSTR, |
| ) -> HRESULT, |
| fn AddSnapshotToRecoverySet( |
| snapshotId: VSS_ID, |
| dwFlags: DWORD, |
| pwszDestinationVolume: VSS_PWSZ, |
| ) -> HRESULT, |
| fn RecoverSet( |
| dwFlags: DWORD, |
| ppAsync: *mut *mut IVssAsync, |
| ) -> HRESULT, |
| fn GetSessionId( |
| idSession: *mut VSS_ID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xf434c2fd, 0xb553, 0x4961, 0xa9, 0xf9, 0xa8, 0xe9, 0x0b, 0x67, 0x3e, 0x53)] |
| interface IVssBackupComponentsEx4(IVssBackupComponentsEx4Vtbl): |
| IVssBackupComponentsEx3(IVssBackupComponentsEx3Vtbl) { |
| fn GetRootAndLogicalPrefixPaths( |
| pwszFilePath: VSS_PWSZ, |
| ppwszRootPath: *mut VSS_PWSZ, |
| ppwszLogicalPrefix: *mut VSS_PWSZ, |
| bNormalizeFQDNforRootPath: BOOL, |
| ) -> HRESULT, |
| }} |
| pub const VSS_SW_BOOTABLE_STATE: DWORD = 1; |
| extern "system" { |
| #[link_name="CreateVssBackupComponentsInternal"] |
| pub fn CreateVssBackupComponents( |
| ppBackup: *mut *mut IVssBackupComponents, |
| ) -> HRESULT; |
| #[link_name="CreateVssExamineWriterMetadataInternal"] |
| pub fn CreateVssExamineWriterMetadata( |
| bstrXML: BSTR, |
| ppMetadata: *mut *mut IVssExamineWriterMetadata, |
| ) -> HRESULT; |
| #[link_name="IsVolumeSnapshottedInternal"] |
| pub fn IsVolumeSnapshotted( |
| pwszVolumeName: VSS_PWSZ, |
| pbSnapshotsPresent: *mut BOOL, |
| plSnapshotCapability: *mut LONG, |
| ) -> HRESULT; |
| #[link_name="VssFreeSnapshotPropertiesInternal"] |
| pub fn VssFreeSnapshotProperties( |
| pProp: *mut VSS_SNAPSHOT_PROP, |
| ); |
| #[link_name="GetProviderMgmtInterfaceInternal"] |
| pub fn GetProviderMgmtInterface( |
| ProviderId: VSS_ID, |
| InterfaceId: IID, |
| ppItf: *mut *mut IUnknown, |
| ) -> HRESULT; |
| #[link_name="ShouldBlockRevertInternal"] |
| pub fn ShouldBlockRevert( |
| wszVolumeName: LPCWSTR, |
| pbBlock: *mut bool, |
| ) -> HRESULT; |
| } |