; 
; Exports of file VSSAPI.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY VSSAPI.DLL
EXPORTS
SimulateSnapshotFreeze
SimulateSnapshotThaw
IsVolumeSnapshotted
VssFreeSnapshotProperties
ShouldBlockRevert
; public: __cdecl CVssJetWriter::CVssJetWriter(void) __ptr64
??0CVssJetWriter@@QEAA@XZ
; public: __cdecl CVssWriter::CVssWriter(void) __ptr64
??0CVssWriter@@QEAA@XZ
; public: virtual __cdecl CVssJetWriter::~CVssJetWriter(void) __ptr64
??1CVssJetWriter@@UEAA@XZ
; public: virtual __cdecl CVssWriter::~CVssWriter(void) __ptr64
??1CVssWriter@@UEAA@XZ
; protected: bool __cdecl CVssWriter::AreComponentsSelected(void)const  __ptr64
?AreComponentsSelected@CVssWriter@@IEBA_NXZ
; long __cdecl CreateVssBackupComponents(class IVssBackupComponents * __ptr64 * __ptr64)
?CreateVssBackupComponents@@YAJPEAPEAVIVssBackupComponents@@@Z
; long __cdecl CreateVssExamineWriterMetadata(unsigned short * __ptr64,class IVssExamineWriterMetadata * __ptr64 * __ptr64)
?CreateVssExamineWriterMetadata@@YAJPEAGPEAPEAVIVssExamineWriterMetadata@@@Z
; long __cdecl CreateVssSnapshotSetDescription(struct _GUID,long,class IVssSnapshotSetDescription * __ptr64 * __ptr64)
?CreateVssSnapshotSetDescription@@YAJU_GUID@@JPEAPEAVIVssSnapshotSetDescription@@@Z
; protected: enum _VSS_BACKUP_TYPE  __cdecl CVssWriter::GetBackupType(void)const  __ptr64
?GetBackupType@CVssWriter@@IEBA?AW4_VSS_BACKUP_TYPE@@XZ
; protected: long __cdecl CVssWriter::GetContext(void)const  __ptr64
?GetContext@CVssWriter@@IEBAJXZ
; protected: enum _VSS_APPLICATION_LEVEL  __cdecl CVssWriter::GetCurrentLevel(void)const  __ptr64
?GetCurrentLevel@CVssWriter@@IEBA?AW4_VSS_APPLICATION_LEVEL@@XZ
; protected: struct _GUID  __cdecl CVssWriter::GetCurrentSnapshotSetId(void)const  __ptr64
?GetCurrentSnapshotSetId@CVssWriter@@IEBA?AU_GUID@@XZ
; protected: unsigned short const * __ptr64 * __ptr64 __cdecl CVssWriter::GetCurrentVolumeArray(void)const  __ptr64
?GetCurrentVolumeArray@CVssWriter@@IEBAPEAPEBGXZ
; protected: unsigned int __cdecl CVssWriter::GetCurrentVolumeCount(void)const  __ptr64
?GetCurrentVolumeCount@CVssWriter@@IEBAIXZ
; protected: enum _VSS_RESTORE_TYPE  __cdecl CVssWriter::GetRestoreType(void)const  __ptr64
?GetRestoreType@CVssWriter@@IEBA?AW4_VSS_RESTORE_TYPE@@XZ
; protected: long __cdecl CVssWriter::GetSnapshotDeviceName(unsigned short const * __ptr64,unsigned short const * __ptr64 * __ptr64)const  __ptr64
?GetSnapshotDeviceName@CVssWriter@@IEBAJPEBGPEAPEBG@Z
; public: long __cdecl CVssJetWriter::Initialize(struct _GUID,unsigned short const * __ptr64,bool,bool,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Initialize@CVssJetWriter@@QEAAJU_GUID@@PEBG_N211@Z
; public: long __cdecl CVssWriter::Initialize(struct _GUID,unsigned short const * __ptr64,enum VSS_USAGE_TYPE,enum VSS_SOURCE_TYPE,enum _VSS_APPLICATION_LEVEL,unsigned long,enum VSS_ALTERNATE_WRITER_STATE,bool,unsigned short const * __ptr64) __ptr64
?Initialize@CVssWriter@@QEAAJU_GUID@@PEBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N1@Z
; public: long __cdecl CVssWriter::InstallAlternateWriter(struct _GUID,struct _GUID) __ptr64
?InstallAlternateWriter@CVssWriter@@QEAAJU_GUID@@0@Z
; protected: bool __cdecl CVssWriter::IsBootableSystemStateBackedUp(void)const  __ptr64
?IsBootableSystemStateBackedUp@CVssWriter@@IEBA_NXZ
; protected: bool __cdecl CVssWriter::IsPartialFileSupportEnabled(void)const  __ptr64
?IsPartialFileSupportEnabled@CVssWriter@@IEBA_NXZ
; protected: bool __cdecl CVssWriter::IsPathAffected(unsigned short const * __ptr64)const  __ptr64
?IsPathAffected@CVssWriter@@IEBA_NPEBG@Z
; long __cdecl LoadVssSnapshotSetDescription(unsigned short const * __ptr64,class IVssSnapshotSetDescription * __ptr64 * __ptr64,struct _GUID)
?LoadVssSnapshotSetDescription@@YAJPEBGPEAPEAVIVssSnapshotSetDescription@@U_GUID@@@Z
; public: virtual void __cdecl CVssJetWriter::OnAbortBegin(void) __ptr64
?OnAbortBegin@CVssJetWriter@@UEAAXXZ
; public: virtual void __cdecl CVssJetWriter::OnAbortEnd(void) __ptr64
?OnAbortEnd@CVssJetWriter@@UEAAXXZ
; public: virtual bool __cdecl CVssWriter::OnBackOffIOOnVolume(unsigned short * __ptr64,struct _GUID,struct _GUID) __ptr64
?OnBackOffIOOnVolume@CVssWriter@@UEAA_NPEAGU_GUID@@1@Z
; public: virtual bool __cdecl CVssWriter::OnBackupComplete(class IVssWriterComponents * __ptr64) __ptr64
?OnBackupComplete@CVssWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnBackupCompleteBegin(class IVssWriterComponents * __ptr64) __ptr64
?OnBackupCompleteBegin@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnBackupCompleteEnd(class IVssWriterComponents * __ptr64,bool) __ptr64
?OnBackupCompleteEnd@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@_N@Z
; public: virtual bool __cdecl CVssWriter::OnBackupShutdown(struct _GUID) __ptr64
?OnBackupShutdown@CVssWriter@@UEAA_NU_GUID@@@Z
; public: virtual bool __cdecl CVssWriter::OnContinueIOOnVolume(unsigned short * __ptr64,struct _GUID,struct _GUID) __ptr64
?OnContinueIOOnVolume@CVssWriter@@UEAA_NPEAGU_GUID@@1@Z
; public: virtual bool __cdecl CVssJetWriter::OnFreezeBegin(void) __ptr64
?OnFreezeBegin@CVssJetWriter@@UEAA_NXZ
; public: virtual bool __cdecl CVssJetWriter::OnFreezeEnd(bool) __ptr64
?OnFreezeEnd@CVssJetWriter@@UEAA_N_N@Z
; public: virtual bool __cdecl CVssJetWriter::OnIdentify(class IVssCreateWriterMetadata * __ptr64) __ptr64
?OnIdentify@CVssJetWriter@@UEAA_NPEAVIVssCreateWriterMetadata@@@Z
; public: virtual bool __cdecl CVssWriter::OnIdentify(class IVssCreateWriterMetadata * __ptr64) __ptr64
?OnIdentify@CVssWriter@@UEAA_NPEAVIVssCreateWriterMetadata@@@Z
; public: virtual bool __cdecl CVssWriter::OnPostRestore(class IVssWriterComponents * __ptr64) __ptr64
?OnPostRestore@CVssWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPostRestoreBegin(class IVssWriterComponents * __ptr64) __ptr64
?OnPostRestoreBegin@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPostRestoreEnd(class IVssWriterComponents * __ptr64,bool) __ptr64
?OnPostRestoreEnd@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@_N@Z
; public: virtual bool __cdecl CVssJetWriter::OnPostSnapshot(class IVssWriterComponents * __ptr64) __ptr64
?OnPostSnapshot@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssWriter::OnPostSnapshot(class IVssWriterComponents * __ptr64) __ptr64
?OnPostSnapshot@CVssWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssWriter::OnPreRestore(class IVssWriterComponents * __ptr64) __ptr64
?OnPreRestore@CVssWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPreRestoreBegin(class IVssWriterComponents * __ptr64) __ptr64
?OnPreRestoreBegin@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPreRestoreEnd(class IVssWriterComponents * __ptr64,bool) __ptr64
?OnPreRestoreEnd@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@_N@Z
; public: virtual bool __cdecl CVssWriter::OnPrepareBackup(class IVssWriterComponents * __ptr64) __ptr64
?OnPrepareBackup@CVssWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPrepareBackupBegin(class IVssWriterComponents * __ptr64) __ptr64
?OnPrepareBackupBegin@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@@Z
; public: virtual bool __cdecl CVssJetWriter::OnPrepareBackupEnd(class IVssWriterComponents * __ptr64,bool) __ptr64
?OnPrepareBackupEnd@CVssJetWriter@@UEAA_NPEAVIVssWriterComponents@@_N@Z
; public: virtual bool __cdecl CVssJetWriter::OnPrepareSnapshotBegin(void) __ptr64
?OnPrepareSnapshotBegin@CVssJetWriter@@UEAA_NXZ
; public: virtual bool __cdecl CVssJetWriter::OnPrepareSnapshotEnd(bool) __ptr64
?OnPrepareSnapshotEnd@CVssJetWriter@@UEAA_N_N@Z
; public: virtual bool __cdecl CVssJetWriter::OnThawBegin(void) __ptr64
?OnThawBegin@CVssJetWriter@@UEAA_NXZ
; public: virtual bool __cdecl CVssJetWriter::OnThawEnd(bool) __ptr64
?OnThawEnd@CVssJetWriter@@UEAA_N_N@Z
; public: virtual bool __cdecl CVssWriter::OnVSSApplicationStartup(void) __ptr64
?OnVSSApplicationStartup@CVssWriter@@UEAA_NXZ
; public: virtual bool __cdecl CVssWriter::OnVSSShutdown(void) __ptr64
?OnVSSShutdown@CVssWriter@@UEAA_NXZ
; protected: long __cdecl CVssWriter::SetWriterFailure(long) __ptr64
?SetWriterFailure@CVssWriter@@IEAAJJ@Z
; public: long __cdecl CVssWriter::Subscribe(unsigned long) __ptr64
?Subscribe@CVssWriter@@QEAAJK@Z
; public: void __cdecl CVssJetWriter::Uninitialize(void) __ptr64
?Uninitialize@CVssJetWriter@@QEAAXXZ
; public: long __cdecl CVssWriter::Unsubscribe(void) __ptr64
?Unsubscribe@CVssWriter@@QEAAJXZ
