;
; Definition file of vsstrace.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "vsstrace.dll"
EXPORTS
; public: __cdecl CBsAutoLock::CBsAutoLock(class CBsCritSec &__ptr64 )__ptr64 
??0CBsAutoLock@@QEAA@AEAVCBsCritSec@@@Z
; public: __cdecl CBsAutoLock::CBsAutoLock(class CBsAutoLock const &__ptr64 )__ptr64 
??0CBsAutoLock@@QEAA@AEBV0@@Z
; public: __cdecl CBsAutoLock::CBsAutoLock(struct _RTL_CRITICAL_SECTION *__ptr64)__ptr64 
??0CBsAutoLock@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CBsAutoLock::CBsAutoLock(void *__ptr64)__ptr64 
??0CBsAutoLock@@QEAA@PEAX@Z
; public: __cdecl CBsCritSec::CBsCritSec(class CBsCritSec const &__ptr64 )__ptr64 
??0CBsCritSec@@QEAA@AEBV0@@Z
; public: __cdecl CBsCritSec::CBsCritSec(void)__ptr64 
??0CBsCritSec@@QEAA@XZ
; public: __cdecl CBsDbgTrace::CBsDbgTrace(void)__ptr64 
??0CBsDbgTrace@@QEAA@XZ
; public: __cdecl CVssDebugInfo::CVssDebugInfo(struct CVssDebugInfo const &__ptr64 )__ptr64 
??0CVssDebugInfo@@QEAA@AEBU0@@Z
; public: __cdecl CVssDebugInfo::CVssDebugInfo(unsigned short const *__ptr64,char const *__ptr64,unsigned long,unsigned long,unsigned long)__ptr64 
??0CVssDebugInfo@@QEAA@PEBGPEBDKKK@Z
; public: __cdecl CVssFunctionTracer::CVssFunctionTracer(struct CVssDebugInfo,unsigned short const *__ptr64)__ptr64 
??0CVssFunctionTracer@@QEAA@UCVssDebugInfo@@PEBG@Z
; public: virtual __cdecl CBsAutoLock::~CBsAutoLock(void)__ptr64 
??1CBsAutoLock@@UEAA@XZ
; public: virtual __cdecl CBsCritSec::~CBsCritSec(void)__ptr64 
??1CBsCritSec@@UEAA@XZ
; public: __cdecl CBsDbgTrace::~CBsDbgTrace(void)__ptr64 
??1CBsDbgTrace@@QEAA@XZ
; public: __cdecl CVssDebugInfo::~CVssDebugInfo(void)__ptr64 
??1CVssDebugInfo@@QEAA@XZ
; public: __cdecl CVssFunctionTracer::~CVssFunctionTracer(void)__ptr64 
??1CVssFunctionTracer@@QEAA@XZ
; public: class CBsAutoLock &__ptr64 __cdecl CBsAutoLock::operator =(class CBsAutoLock const &__ptr64 )__ptr64 
??4CBsAutoLock@@QEAAAEAV0@AEBV0@@Z
; public: class CBsCritSec &__ptr64 __cdecl CBsCritSec::operator =(class CBsCritSec const &__ptr64 )__ptr64 
??4CBsCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CBsDbgTrace &__ptr64 __cdecl CBsDbgTrace::operator =(class CBsDbgTrace const &__ptr64 )__ptr64 
??4CBsDbgTrace@@QEAAAEAV0@AEBV0@@Z
; public: struct CVssDebugInfo &__ptr64 __cdecl CVssDebugInfo::operator =(struct CVssDebugInfo const &__ptr64 )__ptr64 
??4CVssDebugInfo@@QEAAAEAU0@AEBU0@@Z
; public: class CVssFunctionTracer &__ptr64 __cdecl CVssFunctionTracer::operator =(class CVssFunctionTracer const &__ptr64 )__ptr64 
??4CVssFunctionTracer@@QEAAAEAV0@AEBV0@@Z
; public: class CVssSKU &__ptr64 __cdecl CVssSKU::operator =(class CVssSKU const &__ptr64 )__ptr64 
??4CVssSKU@@QEAAAEAV0@AEBV0@@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(int)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@H@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(long)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@J@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(unsigned long)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@K@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(char *__ptr64)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@PEAD@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(unsigned short const *__ptr64)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@PEBG@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(struct _GUID)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@U_GUID@@@Z
; public: struct CVssDebugInfo __cdecl CVssDebugInfo::operator <<(__int64)__ptr64 
??6CVssDebugInfo@@QEAA?AU0@_J@Z
; const CBsAutoLock::$vftable
??_7CBsAutoLock@@6B@ DATA
; const CBsCritSec::$vftable
??_7CBsCritSec@@6B@ DATA
; public: void __cdecl CVssFunctionTracer::AddContext(struct CVssDebugInfo,unsigned int,unsigned short const *__ptr64)__ptr64 
?AddContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IPEBG@Z
; public: void __cdecl CVssFunctionTracer::AddContext(struct CVssDebugInfo,unsigned short const *__ptr64,unsigned short const *__ptr64)__ptr64 
?AddContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG1@Z
; public: void __cdecl CVssFunctionTracer::AddContextEx(struct CVssDebugInfo,unsigned int,unsigned short const *__ptr64,...)__ptr64 
?AddContextEx@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IPEBGZZ
; public: void __cdecl CVssFunctionTracer::AddContextEx(struct CVssDebugInfo,unsigned short const *__ptr64,unsigned short const *__ptr64,...)__ptr64 
?AddContextEx@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG1ZZ
; public: void __cdecl CVssFunctionTracer::AddContextInternal(struct CVssDebugInfo,enum _VssContextType,unsigned short const *__ptr64,unsigned short const *__ptr64)__ptr64 
?AddContextInternal@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@W4_VssContextType@@PEBG2@Z
; public: void __cdecl CVssFunctionTracer::AddErrorSpecificContext(struct CVssDebugInfo,unsigned int,unsigned int,...)__ptr64 
?AddErrorSpecificContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IIZZ
; public: void __cdecl CVssFunctionTracer::AddErrorSpecificContext(struct CVssDebugInfo,unsigned int,unsigned short const *__ptr64,...)__ptr64 
?AddErrorSpecificContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IPEBGZZ
; public: void __cdecl CVssFunctionTracer::AddErrorSpecificContext(struct CVssDebugInfo,unsigned short const *__ptr64,unsigned short const *__ptr64,...)__ptr64 
?AddErrorSpecificContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG1ZZ
; public: void __cdecl CVssFunctionTracer::AddFailureAndCorrectiveAction(struct CVssDebugInfo,unsigned int,unsigned int,...)__ptr64 
?AddFailureAndCorrectiveAction@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IIZZ
; public: void __cdecl CVssFunctionTracer::AddFailureAndCorrectiveAction(struct CVssDebugInfo,unsigned short const *__ptr64,unsigned short const *__ptr64,...)__ptr64 
?AddFailureAndCorrectiveAction@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG1ZZ
; public: void __cdecl CVssFunctionTracer::AddGenericErrorContext(struct CVssDebugInfo,long)__ptr64 
?AddGenericErrorContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@J@Z
; public: void __cdecl CVssFunctionTracer::AddGenericErrorContext(struct CVssDebugInfo,long,unsigned int,...)__ptr64 
?AddGenericErrorContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JIZZ
; public: void __cdecl CVssFunctionTracer::AddGenericErrorContext(struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?AddGenericErrorContext@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBGZZ
; public: void __cdecl CVssFunctionTracer::AddOperation(struct CVssDebugInfo,unsigned int,...)__ptr64 
?AddOperation@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@IZZ
; public: void __cdecl CVssFunctionTracer::AddOperation(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?AddOperation@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; void __cdecl AssertFail(char const *__ptr64,unsigned int,char const *__ptr64)
?AssertFail@@YAXPEBDI0@Z
; public: void __cdecl CVssFunctionTracer::CheckForError(struct CVssDebugInfo,unsigned short const *__ptr64)__ptr64 
?CheckForError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG@Z
; public: void __cdecl CVssFunctionTracer::CheckForErrorInternal(struct CVssDebugInfo,unsigned short const *__ptr64)__ptr64 
?CheckForErrorInternal@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBG@Z
; public: void __cdecl CVssFunctionTracer::CoCreateInstanceWithLog(struct CVssDebugInfo,struct _GUID,unsigned short const *__ptr64,unsigned long,struct _GUID,struct IUnknown *__ptr64 *__ptr64)__ptr64 
?CoCreateInstanceWithLog@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@U_GUID@@PEBGK1PEAPEAUIUnknown@@@Z
; public: void __cdecl CVssFunctionTracer::ComDisableSEH(struct CVssDebugInfo)__ptr64 
?ComDisableSEH@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@@Z
; public: void __cdecl CBsCritSec::Enter(void)__ptr64 
?Enter@CBsCritSec@@QEAAXXZ
; public: void __cdecl CBsDbgTrace::EnterCachedMode(void)__ptr64 
?EnterCachedMode@CBsDbgTrace@@QEAAXXZ
; public: void __cdecl CVssFunctionTracer::EraseInsertionStringsFromText(unsigned short *__ptr64)__ptr64 
?EraseInsertionStringsFromText@CVssFunctionTracer@@QEAAXPEAG@Z
; public: void __cdecl CVssFunctionTracer::Err(struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?Err@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBGZZ
; public: void __cdecl CVssFunctionTracer::ErrBox(struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?ErrBox@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBGZZ
; public: long __cdecl CVssFunctionTracer::Exit(long)__ptr64 
?Exit@CVssFunctionTracer@@QEAAJJ@Z
; public: unsigned short *__ptr64 __cdecl CVssFunctionTracer::Exit(unsigned short *__ptr64)__ptr64 
?Exit@CVssFunctionTracer@@QEAAPEAGPEAG@Z
; public: bool __cdecl CVssFunctionTracer::Exit(bool)__ptr64 
?Exit@CVssFunctionTracer@@QEAA_N_N@Z
; public: void __cdecl CBsDbgTrace::ExitCachedMode(void)__ptr64 
?ExitCachedMode@CBsDbgTrace@@QEAAXXZ
; public: void __cdecl CBsDbgTrace::FlushCache(void)__ptr64 
?FlushCache@CBsDbgTrace@@QEAAXXZ
; public: struct _RTL_CRITICAL_SECTION *__ptr64 __cdecl CBsCritSec::GetCritSec(void)__ptr64 
?GetCritSec@CBsCritSec@@QEAAPEAU_RTL_CRITICAL_SECTION@@XZ
; public: unsigned short *__ptr64 __cdecl CVssFunctionTracer::GetCurrentContexts(void)__ptr64 
?GetCurrentContexts@CVssFunctionTracer@@QEAAPEAGXZ
; public: long __cdecl CVssFunctionTracer::GetHr(void)__ptr64 
?GetHr@CVssFunctionTracer@@QEAAJXZ
; public: unsigned int __cdecl CVssFunctionTracer::GetPrefixForContextType(enum _VssContextType)__ptr64 
?GetPrefixForContextType@CVssFunctionTracer@@QEAAIW4_VssContextType@@@Z
; public: static enum CVssSKU::EVssSKUType __cdecl CVssSKU::GetSKU(void)
?GetSKU@CVssSKU@@SA?AW4EVssSKUType@1@XZ
; public: unsigned long __cdecl CBsDbgTrace::GetTraceEnterExit(void)__ptr64 
?GetTraceEnterExit@CBsDbgTrace@@QEAAKXZ
; public: unsigned short *__ptr64 __cdecl CBsDbgTrace::GetTraceFileVolume(void)__ptr64 
?GetTraceFileVolume@CBsDbgTrace@@QEAAPEAGXZ
; public: unsigned long __cdecl CBsDbgTrace::GetTraceLevel(void)__ptr64 
?GetTraceLevel@CBsDbgTrace@@QEAAKXZ
; public: bool __cdecl CVssFunctionTracer::HrFailed(void)__ptr64 
?HrFailed@CVssFunctionTracer@@QEAA_NXZ
; public: bool __cdecl CVssFunctionTracer::HrInFacility(int)__ptr64 
?HrInFacility@CVssFunctionTracer@@QEAA_NH@Z
; public: bool __cdecl CVssFunctionTracer::HrSucceeded(void)__ptr64 
?HrSucceeded@CVssFunctionTracer@@QEAA_NXZ
; public: void __cdecl CBsDbgTrace::Initialize(int)__ptr64 
?Initialize@CBsDbgTrace@@QEAAXH@Z
; private: static void __cdecl CVssSKU::Initialize(void)
?Initialize@CVssSKU@@CAXXZ
; public: void __cdecl CVssFunctionTracer::InterpretWaitForMultipleObjects(unsigned long)__ptr64 
?InterpretWaitForMultipleObjects@CVssFunctionTracer@@QEAAXK@Z
; public: static int __cdecl CVssSKU::IsClient(void)
?IsClient@CVssSKU@@SAHXZ
; public: int __cdecl CBsDbgTrace::IsConditonalDebugBreakEnabled(void)__ptr64 
?IsConditonalDebugBreakEnabled@CBsDbgTrace@@QEAAHXZ
; public: int __cdecl CBsDbgTrace::IsDuringSetup(void)__ptr64 
?IsDuringSetup@CBsDbgTrace@@QEAAHXZ
; public: int __cdecl CVssFunctionTracer::IsDuringSetup(void)__ptr64 
?IsDuringSetup@CVssFunctionTracer@@QEAAHXZ
; public: bool __cdecl CVssFunctionTracer::IsHwDiagEnabled(void)__ptr64 
?IsHwDiagEnabled@CVssFunctionTracer@@QEAA_NXZ
; public: int __cdecl CVssFunctionTracer::IsInSoftwareProvider(void)__ptr64 
?IsInSoftwareProvider@CVssFunctionTracer@@QEAAHXZ
; public: static int __cdecl CVssSKU::IsNAS(void)
?IsNAS@CVssSKU@@SAHXZ
; public: static int __cdecl CVssSKU::IsServer(void)
?IsServer@CVssSKU@@SAHXZ
; public: int __cdecl CBsDbgTrace::IsTracingEnabled(void)__ptr64 
?IsTracingEnabled@CBsDbgTrace@@QEAAHXZ
; public: static int __cdecl CVssSKU::IsTransportableAllowed(void)
?IsTransportableAllowed@CVssSKU@@SAHXZ
; public: void __cdecl CBsCritSec::Leave(void)__ptr64 
?Leave@CBsCritSec@@QEAAXXZ
; public: void __cdecl CVssFunctionTracer::LogError(unsigned long,struct CVssDebugInfo,unsigned short,unsigned short *__ptr64)__ptr64 
?LogError@CVssFunctionTracer@@QEAAXKUCVssDebugInfo@@GPEAG@Z
; public: void __cdecl CVssFunctionTracer::LogGenericInfo(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?LogGenericInfo@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::LogGenericWarning(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?LogGenericWarning@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::LogSecurityAudit(unsigned long,struct CVssDebugInfo)__ptr64 
?LogSecurityAudit@CVssFunctionTracer@@QEAAXKUCVssDebugInfo@@@Z
; public: void __cdecl CVssFunctionTracer::LogVssStartupAttempt(void)__ptr64 
?LogVssStartupAttempt@CVssFunctionTracer@@QEAAXXZ
; public: void __cdecl CVssFunctionTracer::Msg(unsigned short const *__ptr64,...)__ptr64 
?Msg@CVssFunctionTracer@@QEAAXPEBGZZ
; public: void __cdecl CVssFunctionTracer::MsgBox(unsigned short const *__ptr64,unsigned short const *__ptr64,...)__ptr64 
?MsgBox@CVssFunctionTracer@@QEAAXPEBG0ZZ
; public: void __cdecl CVssFunctionTracer::MsgNoCR(unsigned short const *__ptr64,...)__ptr64 
?MsgNoCR@CVssFunctionTracer@@QEAAXPEBGZZ
; private: long __cdecl CBsDbgTrace::OpenAndLock(void)__ptr64 
?OpenAndLock@CBsDbgTrace@@AEAAJXZ
; private: long __cdecl CBsDbgTrace::OutputString(bool)__ptr64 
?OutputString@CBsDbgTrace@@AEAAJ_N@Z
; public: long __cdecl CBsDbgTrace::PostPrint(unsigned long)__ptr64 
?PostPrint@CBsDbgTrace@@QEAAJK@Z
; public: long __cdecl CBsDbgTrace::PrePrint(unsigned short const *__ptr64,unsigned long,unsigned long,unsigned long,unsigned short const *__ptr64,int)__ptr64 
?PrePrint@CBsDbgTrace@@QEAAJPEBGKKK0H@Z
; public: long __cdecl CBsDbgTrace::Print(unsigned short const *__ptr64,...)__ptr64 
?Print@CBsDbgTrace@@QEAAJPEBGZZ
; public: long __cdecl CBsDbgTrace::PrintEnterExit(unsigned short const *__ptr64,...)__ptr64 
?PrintEnterExit@CBsDbgTrace@@QEAAJPEBGZZ
; public: void __cdecl CVssFunctionTracer::ReThrow(void)__ptr64 
?ReThrow@CVssFunctionTracer@@QEAAXXZ
; public: long __cdecl CBsDbgTrace::ReadRegistry(void)__ptr64 
?ReadRegistry@CBsDbgTrace@@QEAAJXZ
; public: static bool __cdecl CVssFunctionTracer::SafeLogEvent(unsigned long,unsigned short,int,...)
?SafeLogEvent@CVssFunctionTracer@@SA_NKGHZZ
; public: long __cdecl CVssFunctionTracer::SetHr(long)__ptr64 
?SetHr@CVssFunctionTracer@@QEAAJJ@Z
; public: static void __cdecl CVssFunctionTracer::StaticTrace(unsigned short const *__ptr64,unsigned short const *__ptr64,...)
?StaticTrace@CVssFunctionTracer@@SAXPEBG0ZZ
; public: void __cdecl CVssFunctionTracer::Throw(struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?Throw@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBGZZ
; public: void __cdecl CVssFunctionTracer::ThrowIf(int,struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?ThrowIf@CVssFunctionTracer@@QEAAXHUCVssDebugInfo@@JPEBGZZ
; public: void __cdecl CVssFunctionTracer::ThrowOutOfMemory(struct CVssDebugInfo)__ptr64 
?ThrowOutOfMemory@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@@Z
; public: void __cdecl CVssFunctionTracer::Trace(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?Trace@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::TraceBuffer(struct CVssDebugInfo,unsigned long,unsigned char *__ptr64)__ptr64 
?TraceBuffer@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@KPEAE@Z
; public: void __cdecl CVssFunctionTracer::TraceComError(void)__ptr64 
?TraceComError@CVssFunctionTracer@@QEAAXXZ
; public: void __cdecl CVssFunctionTracer::TranslateComError(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?TranslateComError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateError(struct CVssDebugInfo,long,unsigned short const *__ptr64)__ptr64 
?TranslateError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBG@Z
; public: void __cdecl CVssFunctionTracer::TranslateGenericError(struct CVssDebugInfo,long,unsigned short const *__ptr64,...)__ptr64 
?TranslateGenericError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JPEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateInternalLovelaceError(struct CVssDebugInfo,long,int,unsigned short const *__ptr64,...)__ptr64 
?TranslateInternalLovelaceError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JHPEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateInternalProviderError(struct CVssDebugInfo,long,long,unsigned short const *__ptr64,...)__ptr64 
?TranslateInternalProviderError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@JJPEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateProviderError(struct CVssDebugInfo,struct _GUID,unsigned short const *__ptr64,...)__ptr64 
?TranslateProviderError@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@U_GUID@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateWin32Error(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?TranslateWin32Error@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; public: void __cdecl CVssFunctionTracer::TranslateWriterReturnCode(struct CVssDebugInfo,unsigned short const *__ptr64,...)__ptr64 
?TranslateWriterReturnCode@CVssFunctionTracer@@QEAAXUCVssDebugInfo@@PEBGZZ
; private: long __cdecl CBsDbgTrace::UnlockAndClose(void)__ptr64 
?UnlockAndClose@CBsDbgTrace@@AEAAJXZ
; void __cdecl VssSetDebugReport(long)
?VssSetDebugReport@@YAXJ@Z
; class CBsDbgTrace g_cDbgTrace
?g_cDbgTrace@@3VCBsDbgTrace@@A DATA
; private: static int CVssSKU::ms_bInitialized
?ms_bInitialized@CVssSKU@@0HA DATA
; private: static int CVssSKU::ms_bTransportableShadowsAllowed
?ms_bTransportableShadowsAllowed@CVssSKU@@0HA DATA
; private: static enum CVssSKU::EVssSKUType CVssSKU::ms_eSKU
?ms_eSKU@CVssSKU@@0W4EVssSKUType@1@A DATA
