; 
; Exports of file IISUTIL.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY IISUTIL.dll
EXPORTS
; public: __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::CDataCache<struct DATETIME_FORMAT_ENTRY>(void) __ptr64
??0?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAA@XZ
; public: __cdecl CDataCache<class CDateTime>::CDataCache<class CDateTime>(void) __ptr64
??0?$CDataCache@VCDateTime@@@@QEAA@XZ
; public: __cdecl ALLOC_CACHE_HANDLER::ALLOC_CACHE_HANDLER(char const * __ptr64,struct _ALLOC_CACHE_CONFIGURATION const * __ptr64,int) __ptr64
??0ALLOC_CACHE_HANDLER@@QEAA@PEBDPEBU_ALLOC_CACHE_CONFIGURATION@@H@Z
; public: __cdecl ASCLOG_DATETIME_CACHE::ASCLOG_DATETIME_CACHE(void) __ptr64
??0ASCLOG_DATETIME_CACHE@@QEAA@XZ
; public: __cdecl BUFFER::BUFFER(unsigned int) __ptr64
??0BUFFER@@QEAA@I@Z
; public: __cdecl BUFFER::BUFFER(unsigned char * __ptr64,unsigned int) __ptr64
??0BUFFER@@QEAA@PEAEI@Z
; public: __cdecl BUFFER_CHAIN::BUFFER_CHAIN(void) __ptr64
??0BUFFER_CHAIN@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN_ITEM::BUFFER_CHAIN_ITEM(unsigned int) __ptr64
??0BUFFER_CHAIN_ITEM@@QEAA@I@Z
; public: __cdecl CACHED_DATETIME_FORMATS::CACHED_DATETIME_FORMATS(void) __ptr64
??0CACHED_DATETIME_FORMATS@@QEAA@XZ
; public: __cdecl CCritSec::CCritSec(void) __ptr64
??0CCritSec@@QEAA@XZ
; public: __cdecl CDFTCache::CDFTCache(void) __ptr64
??0CDFTCache@@QEAA@XZ
; public: __cdecl CDateTime::CDateTime(struct _FILETIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_FILETIME@@@Z
; public: __cdecl CDateTime::CDateTime(struct _FILETIME const & __ptr64,struct _SYSTEMTIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_FILETIME@@AEBU_SYSTEMTIME@@@Z
; public: __cdecl CDateTime::CDateTime(struct _SYSTEMTIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_SYSTEMTIME@@@Z
; public: __cdecl CDateTime::CDateTime(void) __ptr64
??0CDateTime@@QEAA@XZ
; public: __cdecl CDoubleList::CDoubleList(void) __ptr64
??0CDoubleList@@QEAA@XZ
; public: __cdecl CEtwTracer::CEtwTracer(void) __ptr64
??0CEtwTracer@@QEAA@XZ
; public: __cdecl CFakeLock::CFakeLock(void) __ptr64
??0CFakeLock@@QEAA@XZ
; public: __cdecl CHUNK_BUFFER::CHUNK_BUFFER(void) __ptr64
??0CHUNK_BUFFER@@QEAA@XZ
; public: __cdecl CLKRHashTable::CLKRHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,unsigned long,bool) __ptr64
??0CLKRHashTable@@QEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKK_N@Z
; public: __cdecl CLKRHashTableStats::CLKRHashTableStats(void) __ptr64
??0CLKRHashTableStats@@QEAA@XZ
; protected: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable * __ptr64,short) __ptr64
??0CLKRHashTable_Iterator@@IEAA@PEAVCLKRHashTable@@F@Z
; public: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable_Iterator const & __ptr64) __ptr64
??0CLKRHashTable_Iterator@@QEAA@AEBV0@@Z
; public: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(void) __ptr64
??0CLKRHashTable_Iterator@@QEAA@XZ
; private: __cdecl CLKRLinearHashTable::CLKRLinearHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,class CLKRHashTable * __ptr64,bool) __ptr64
??0CLKRLinearHashTable@@AEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKPEAVCLKRHashTable@@_N@Z
; public: __cdecl CLKRLinearHashTable::CLKRLinearHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,unsigned long,bool) __ptr64
??0CLKRLinearHashTable@@QEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKK_N@Z
; protected: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable * __ptr64,class CNodeClump * __ptr64,unsigned long,short) __ptr64
??0CLKRLinearHashTable_Iterator@@IEAA@PEAVCLKRLinearHashTable@@PEAVCNodeClump@@KF@Z
; public: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable_Iterator const & __ptr64) __ptr64
??0CLKRLinearHashTable_Iterator@@QEAA@AEBV0@@Z
; public: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(void) __ptr64
??0CLKRLinearHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLockedDoubleList::CLockedDoubleList(void) __ptr64
??0CLockedDoubleList@@QEAA@XZ
; public: __cdecl CLockedSingleList::CLockedSingleList(void) __ptr64
??0CLockedSingleList@@QEAA@XZ
; public: __cdecl CReaderWriterLock2::CReaderWriterLock2(void) __ptr64
??0CReaderWriterLock2@@QEAA@XZ
; public: __cdecl CReaderWriterLock3::CReaderWriterLock3(void) __ptr64
??0CReaderWriterLock3@@QEAA@XZ
; public: __cdecl CReaderWriterLock::CReaderWriterLock(void) __ptr64
??0CReaderWriterLock@@QEAA@XZ
; public: __cdecl CRtlResource::CRtlResource(void) __ptr64
??0CRtlResource@@QEAA@XZ
; public: __cdecl CSecurityDispenser::CSecurityDispenser(void) __ptr64
??0CSecurityDispenser@@QEAA@XZ
; public: __cdecl CShareLock::CShareLock(void) __ptr64
??0CShareLock@@QEAA@XZ
; public: __cdecl CSharelock::CSharelock(int,int) __ptr64
??0CSharelock@@QEAA@HH@Z
; public: __cdecl CSingleList::CSingleList(void) __ptr64
??0CSingleList@@QEAA@XZ
; public: __cdecl CSmallSpinLock::CSmallSpinLock(void) __ptr64
??0CSmallSpinLock@@QEAA@XZ
; public: __cdecl CSpinLock::CSpinLock(void) __ptr64
??0CSpinLock@@QEAA@XZ
; public: __cdecl EVENT_LOG::EVENT_LOG(unsigned short const * __ptr64) __ptr64
??0EVENT_LOG@@QEAA@PEBG@Z
; public: __cdecl EXTLOG_DATETIME_CACHE::EXTLOG_DATETIME_CACHE(void) __ptr64
??0EXTLOG_DATETIME_CACHE@@QEAA@XZ
; private: __cdecl IPM_MESSAGE_PIPE::IPM_MESSAGE_PIPE(void) __ptr64
??0IPM_MESSAGE_PIPE@@AEAA@XZ
; public: __cdecl MB::MB(struct IMSAdminBaseW * __ptr64) __ptr64
??0MB@@QEAA@PEAUIMSAdminBaseW@@@Z
; public: __cdecl MB_BASE_NOTIFICATION_SINK::MB_BASE_NOTIFICATION_SINK(void) __ptr64
??0MB_BASE_NOTIFICATION_SINK@@QEAA@XZ
; public: __cdecl MULTISZ::MULTISZ(class MULTISZ const & __ptr64) __ptr64
??0MULTISZ@@QEAA@AEBV0@@Z
; public: __cdecl MULTISZ::MULTISZ(unsigned short * __ptr64,unsigned long) __ptr64
??0MULTISZ@@QEAA@PEAGK@Z
; public: __cdecl MULTISZ::MULTISZ(unsigned short const * __ptr64) __ptr64
??0MULTISZ@@QEAA@PEBG@Z
; public: __cdecl MULTISZ::MULTISZ(void) __ptr64
??0MULTISZ@@QEAA@XZ
; public: __cdecl MULTISZA::MULTISZA(class MULTISZA const & __ptr64) __ptr64
??0MULTISZA@@QEAA@AEBV0@@Z
; public: __cdecl MULTISZA::MULTISZA(char * __ptr64,unsigned long) __ptr64
??0MULTISZA@@QEAA@PEADK@Z
; public: __cdecl MULTISZA::MULTISZA(char const * __ptr64) __ptr64
??0MULTISZA@@QEAA@PEBD@Z
; public: __cdecl MULTISZA::MULTISZA(void) __ptr64
??0MULTISZA@@QEAA@XZ
; private: __cdecl STRA::STRA(class STRA const & __ptr64) __ptr64
??0STRA@@AEAA@AEBV0@@Z
; private: __cdecl STRA::STRA(char * __ptr64) __ptr64
??0STRA@@AEAA@PEAD@Z
; private: __cdecl STRA::STRA(char const * __ptr64) __ptr64
??0STRA@@AEAA@PEBD@Z
; public: __cdecl STRA::STRA(char * __ptr64,unsigned long) __ptr64
??0STRA@@QEAA@PEADK@Z
; public: __cdecl STRA::STRA(void) __ptr64
??0STRA@@QEAA@XZ
; public: __cdecl STRAU::STRAU(class STRAU & __ptr64) __ptr64
??0STRAU@@QEAA@AEAV0@@Z
; public: __cdecl STRAU::STRAU(char const * __ptr64) __ptr64
??0STRAU@@QEAA@PEBD@Z
; public: __cdecl STRAU::STRAU(char const * __ptr64,int) __ptr64
??0STRAU@@QEAA@PEBDH@Z
; public: __cdecl STRAU::STRAU(unsigned short const * __ptr64) __ptr64
??0STRAU@@QEAA@PEBG@Z
; public: __cdecl STRAU::STRAU(void) __ptr64
??0STRAU@@QEAA@XZ
; private: __cdecl STRU::STRU(class STRU const & __ptr64) __ptr64
??0STRU@@AEAA@AEBV0@@Z
; private: __cdecl STRU::STRU(unsigned short * __ptr64) __ptr64
??0STRU@@AEAA@PEAG@Z
; private: __cdecl STRU::STRU(unsigned short const * __ptr64) __ptr64
??0STRU@@AEAA@PEBG@Z
; public: __cdecl STRU::STRU(unsigned short * __ptr64,unsigned long) __ptr64
??0STRU@@QEAA@PEAGK@Z
; public: __cdecl STRU::STRU(void) __ptr64
??0STRU@@QEAA@XZ
; public: __cdecl TS_RESOURCE::TS_RESOURCE(void) __ptr64
??0TS_RESOURCE@@QEAA@XZ
; public: __cdecl W3_DATETIME_CACHE::W3_DATETIME_CACHE(void) __ptr64
??0W3_DATETIME_CACHE@@QEAA@XZ
; public: __cdecl W3_TRACE_LOG::W3_TRACE_LOG(class W3_TRACE_LOG_FACTORY * __ptr64) __ptr64
??0W3_TRACE_LOG@@QEAA@PEAVW3_TRACE_LOG_FACTORY@@@Z
; private: __cdecl W3_TRACE_LOG_FACTORY::W3_TRACE_LOG_FACTORY(void) __ptr64
??0W3_TRACE_LOG_FACTORY@@AEAA@XZ
; public: __cdecl ALLOC_CACHE_HANDLER::~ALLOC_CACHE_HANDLER(void) __ptr64
??1ALLOC_CACHE_HANDLER@@QEAA@XZ
; public: virtual __cdecl ASCLOG_DATETIME_CACHE::~ASCLOG_DATETIME_CACHE(void) __ptr64
??1ASCLOG_DATETIME_CACHE@@UEAA@XZ
; public: __cdecl BUFFER::~BUFFER(void) __ptr64
??1BUFFER@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN::~BUFFER_CHAIN(void) __ptr64
??1BUFFER_CHAIN@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN_ITEM::~BUFFER_CHAIN_ITEM(void) __ptr64
??1BUFFER_CHAIN_ITEM@@QEAA@XZ
; public: virtual __cdecl CACHED_DATETIME_FORMATS::~CACHED_DATETIME_FORMATS(void) __ptr64
??1CACHED_DATETIME_FORMATS@@UEAA@XZ
; public: __cdecl CCritSec::~CCritSec(void) __ptr64
??1CCritSec@@QEAA@XZ
; public: __cdecl CDoubleList::~CDoubleList(void) __ptr64
??1CDoubleList@@QEAA@XZ
; public: __cdecl CEtwTracer::~CEtwTracer(void) __ptr64
??1CEtwTracer@@QEAA@XZ
; public: __cdecl CFakeLock::~CFakeLock(void) __ptr64
??1CFakeLock@@QEAA@XZ
; public: __cdecl CHUNK_BUFFER::~CHUNK_BUFFER(void) __ptr64
??1CHUNK_BUFFER@@QEAA@XZ
; public: __cdecl CLKRHashTable::~CLKRHashTable(void) __ptr64
??1CLKRHashTable@@QEAA@XZ
; public: __cdecl CLKRHashTable_Iterator::~CLKRHashTable_Iterator(void) __ptr64
??1CLKRHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLKRLinearHashTable::~CLKRLinearHashTable(void) __ptr64
??1CLKRLinearHashTable@@QEAA@XZ
; public: __cdecl CLKRLinearHashTable_Iterator::~CLKRLinearHashTable_Iterator(void) __ptr64
??1CLKRLinearHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLockedDoubleList::~CLockedDoubleList(void) __ptr64
??1CLockedDoubleList@@QEAA@XZ
; public: __cdecl CLockedSingleList::~CLockedSingleList(void) __ptr64
??1CLockedSingleList@@QEAA@XZ
; public: __cdecl CRtlResource::~CRtlResource(void) __ptr64
??1CRtlResource@@QEAA@XZ
; public: __cdecl CSecurityDispenser::~CSecurityDispenser(void) __ptr64
??1CSecurityDispenser@@QEAA@XZ
; public: __cdecl CShareLock::~CShareLock(void) __ptr64
??1CShareLock@@QEAA@XZ
; public: __cdecl CSharelock::~CSharelock(void) __ptr64
??1CSharelock@@QEAA@XZ
; public: __cdecl CSingleList::~CSingleList(void) __ptr64
??1CSingleList@@QEAA@XZ
; public: __cdecl EVENT_LOG::~EVENT_LOG(void) __ptr64
??1EVENT_LOG@@QEAA@XZ
; public: virtual __cdecl EXTLOG_DATETIME_CACHE::~EXTLOG_DATETIME_CACHE(void) __ptr64
??1EXTLOG_DATETIME_CACHE@@UEAA@XZ
; private: __cdecl IPM_MESSAGE_PIPE::~IPM_MESSAGE_PIPE(void) __ptr64
??1IPM_MESSAGE_PIPE@@AEAA@XZ
; public: __cdecl MB::~MB(void) __ptr64
??1MB@@QEAA@XZ
; public: virtual __cdecl MB_BASE_NOTIFICATION_SINK::~MB_BASE_NOTIFICATION_SINK(void) __ptr64
??1MB_BASE_NOTIFICATION_SINK@@UEAA@XZ
; public: __cdecl MULTISZ::~MULTISZ(void) __ptr64
??1MULTISZ@@QEAA@XZ
; public: __cdecl MULTISZA::~MULTISZA(void) __ptr64
??1MULTISZA@@QEAA@XZ
; public: __cdecl STRA::~STRA(void) __ptr64
??1STRA@@QEAA@XZ
; public: __cdecl STRAU::~STRAU(void) __ptr64
??1STRAU@@QEAA@XZ
; public: __cdecl STRU::~STRU(void) __ptr64
??1STRU@@QEAA@XZ
; public: __cdecl TS_RESOURCE::~TS_RESOURCE(void) __ptr64
??1TS_RESOURCE@@QEAA@XZ
; public: virtual __cdecl W3_DATETIME_CACHE::~W3_DATETIME_CACHE(void) __ptr64
??1W3_DATETIME_CACHE@@UEAA@XZ
; private: __cdecl W3_TRACE_LOG::~W3_TRACE_LOG(void) __ptr64
??1W3_TRACE_LOG@@AEAA@XZ
; private: __cdecl W3_TRACE_LOG_FACTORY::~W3_TRACE_LOG_FACTORY(void) __ptr64
??1W3_TRACE_LOG_FACTORY@@AEAA@XZ
; public: static void * __ptr64 __cdecl CLKRLinearHashTable::operator new(unsigned __int64)
??2CLKRLinearHashTable@@SAPEAX_K@Z
; public: static void __cdecl CLKRLinearHashTable::operator delete(void * __ptr64)
??3CLKRLinearHashTable@@SAXPEAX@Z
; public: class CDataCache<struct DATETIME_FORMAT_ENTRY> & __ptr64 __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::operator=(class CDataCache<struct DATETIME_FORMAT_ENTRY> const & __ptr64) __ptr64
??4?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAAAEAV0@AEBV0@@Z
; public: class CDataCache<class CDateTime> & __ptr64 __cdecl CDataCache<class CDateTime>::operator=(class CDataCache<class CDateTime> const & __ptr64) __ptr64
??4?$CDataCache@VCDateTime@@@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<1,1,3,1,3,2> & __ptr64 __cdecl CLockBase<1,1,3,1,3,2>::operator=(class CLockBase<1,1,3,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$00$00$02$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<2,1,1,1,3,2> & __ptr64 __cdecl CLockBase<2,1,1,1,3,2>::operator=(class CLockBase<2,1,1,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$01$00$00$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<3,1,1,1,1,1> & __ptr64 __cdecl CLockBase<3,1,1,1,1,1>::operator=(class CLockBase<3,1,1,1,1,1> const & __ptr64) __ptr64
??4?$CLockBase@$02$00$00$00$00$00@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<4,1,1,2,3,3> & __ptr64 __cdecl CLockBase<4,1,1,2,3,3>::operator=(class CLockBase<4,1,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$03$00$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<5,2,1,2,3,3> & __ptr64 __cdecl CLockBase<5,2,1,2,3,3>::operator=(class CLockBase<5,2,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$04$01$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<6,2,1,2,3,3> & __ptr64 __cdecl CLockBase<6,2,1,2,3,3>::operator=(class CLockBase<6,2,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$05$01$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<7,2,2,1,3,2> & __ptr64 __cdecl CLockBase<7,2,2,1,3,2>::operator=(class CLockBase<7,2,2,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$06$01$01$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<8,2,2,1,3,2> & __ptr64 __cdecl CLockBase<8,2,2,1,3,2>::operator=(class CLockBase<8,2,2,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$07$01$01$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<9,2,1,1,3,2> & __ptr64 __cdecl CLockBase<9,2,1,1,3,2>::operator=(class CLockBase<9,2,1,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$08$01$00$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class ALLOC_CACHE_HANDLER & __ptr64 __cdecl ALLOC_CACHE_HANDLER::operator=(class ALLOC_CACHE_HANDLER const & __ptr64) __ptr64
??4ALLOC_CACHE_HANDLER@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER & __ptr64 __cdecl BUFFER::operator=(class BUFFER const & __ptr64) __ptr64
??4BUFFER@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER_CHAIN & __ptr64 __cdecl BUFFER_CHAIN::operator=(class BUFFER_CHAIN const & __ptr64) __ptr64
??4BUFFER_CHAIN@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER_CHAIN_ITEM & __ptr64 __cdecl BUFFER_CHAIN_ITEM::operator=(class BUFFER_CHAIN_ITEM const & __ptr64) __ptr64
??4BUFFER_CHAIN_ITEM@@QEAAAEAV0@AEBV0@@Z
; public: class CCritSec & __ptr64 __cdecl CCritSec::operator=(class CCritSec const & __ptr64) __ptr64
??4CCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CDFTCache & __ptr64 __cdecl CDFTCache::operator=(class CDFTCache const & __ptr64) __ptr64
??4CDFTCache@@QEAAAEAV0@AEBV0@@Z
; public: class CDateTime & __ptr64 __cdecl CDateTime::operator=(class CDateTime const & __ptr64) __ptr64
??4CDateTime@@QEAAAEAV0@AEBV0@@Z
; public: class CDoubleList & __ptr64 __cdecl CDoubleList::operator=(class CDoubleList const & __ptr64) __ptr64
??4CDoubleList@@QEAAAEAV0@AEBV0@@Z
; public: class CFakeLock & __ptr64 __cdecl CFakeLock::operator=(class CFakeLock const & __ptr64) __ptr64
??4CFakeLock@@QEAAAEAV0@AEBV0@@Z
; public: class CHUNK_BUFFER & __ptr64 __cdecl CHUNK_BUFFER::operator=(class CHUNK_BUFFER const & __ptr64) __ptr64
??4CHUNK_BUFFER@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRHashTableStats & __ptr64 __cdecl CLKRHashTableStats::operator=(class CLKRHashTableStats const & __ptr64) __ptr64
??4CLKRHashTableStats@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRHashTable_Iterator & __ptr64 __cdecl CLKRHashTable_Iterator::operator=(class CLKRHashTable_Iterator const & __ptr64) __ptr64
??4CLKRHashTable_Iterator@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRLinearHashTable_Iterator & __ptr64 __cdecl CLKRLinearHashTable_Iterator::operator=(class CLKRLinearHashTable_Iterator const & __ptr64) __ptr64
??4CLKRLinearHashTable_Iterator@@QEAAAEAV0@AEBV0@@Z
; public: class CLockedDoubleList & __ptr64 __cdecl CLockedDoubleList::operator=(class CLockedDoubleList const & __ptr64) __ptr64
??4CLockedDoubleList@@QEAAAEAV0@AEBV0@@Z
; public: class CLockedSingleList & __ptr64 __cdecl CLockedSingleList::operator=(class CLockedSingleList const & __ptr64) __ptr64
??4CLockedSingleList@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock2 & __ptr64 __cdecl CReaderWriterLock2::operator=(class CReaderWriterLock2 const & __ptr64) __ptr64
??4CReaderWriterLock2@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock3 & __ptr64 __cdecl CReaderWriterLock3::operator=(class CReaderWriterLock3 const & __ptr64) __ptr64
??4CReaderWriterLock3@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock & __ptr64 __cdecl CReaderWriterLock::operator=(class CReaderWriterLock const & __ptr64) __ptr64
??4CReaderWriterLock@@QEAAAEAV0@AEBV0@@Z
; public: class CRtlResource & __ptr64 __cdecl CRtlResource::operator=(class CRtlResource const & __ptr64) __ptr64
??4CRtlResource@@QEAAAEAV0@AEBV0@@Z
; public: class CSecurityDispenser & __ptr64 __cdecl CSecurityDispenser::operator=(class CSecurityDispenser const & __ptr64) __ptr64
??4CSecurityDispenser@@QEAAAEAV0@AEBV0@@Z
; public: class CSingleList & __ptr64 __cdecl CSingleList::operator=(class CSingleList const & __ptr64) __ptr64
??4CSingleList@@QEAAAEAV0@AEBV0@@Z
; public: class CSmallSpinLock & __ptr64 __cdecl CSmallSpinLock::operator=(class CSmallSpinLock const & __ptr64) __ptr64
??4CSmallSpinLock@@QEAAAEAV0@AEBV0@@Z
; public: class CSpinLock & __ptr64 __cdecl CSpinLock::operator=(class CSpinLock const & __ptr64) __ptr64
??4CSpinLock@@QEAAAEAV0@AEBV0@@Z
; public: struct DATETIME_FORMAT_ENTRY & __ptr64 __cdecl DATETIME_FORMAT_ENTRY::operator=(struct DATETIME_FORMAT_ENTRY const & __ptr64) __ptr64
??4DATETIME_FORMAT_ENTRY@@QEAAAEAU0@AEBU0@@Z
; public: class EVENT_LOG & __ptr64 __cdecl EVENT_LOG::operator=(class EVENT_LOG const & __ptr64) __ptr64
??4EVENT_LOG@@QEAAAEAV0@AEBV0@@Z
; public: class IPM_MESSAGE_PIPE & __ptr64 __cdecl IPM_MESSAGE_PIPE::operator=(class IPM_MESSAGE_PIPE const & __ptr64) __ptr64
??4IPM_MESSAGE_PIPE@@QEAAAEAV0@AEBV0@@Z
; public: class MB & __ptr64 __cdecl MB::operator=(class MB const & __ptr64) __ptr64
??4MB@@QEAAAEAV0@AEBV0@@Z
; public: class MULTISZ & __ptr64 __cdecl MULTISZ::operator=(class MULTISZ const & __ptr64) __ptr64
??4MULTISZ@@QEAAAEAV0@AEBV0@@Z
; public: class MULTISZA & __ptr64 __cdecl MULTISZA::operator=(class MULTISZA const & __ptr64) __ptr64
??4MULTISZA@@QEAAAEAV0@AEBV0@@Z
; private: class STRA & __ptr64 __cdecl STRA::operator=(class STRA const & __ptr64) __ptr64
??4STRA@@AEAAAEAV0@AEBV0@@Z
; public: class STRAU & __ptr64 __cdecl STRAU::operator=(class STRAU const & __ptr64) __ptr64
??4STRAU@@QEAAAEAV0@AEBV0@@Z
; private: class STRU & __ptr64 __cdecl STRU::operator=(class STRU const & __ptr64) __ptr64
??4STRU@@AEAAAEAV0@AEBV0@@Z
; public: class TS_RESOURCE & __ptr64 __cdecl TS_RESOURCE::operator=(class TS_RESOURCE const & __ptr64) __ptr64
??4TS_RESOURCE@@QEAAAEAV0@AEBV0@@Z
; public: class W3_TRACE_LOG & __ptr64 __cdecl W3_TRACE_LOG::operator=(class W3_TRACE_LOG const & __ptr64) __ptr64
??4W3_TRACE_LOG@@QEAAAEAV0@AEBV0@@Z
; public: class W3_TRACE_LOG_FACTORY & __ptr64 __cdecl W3_TRACE_LOG_FACTORY::operator=(class W3_TRACE_LOG_FACTORY const & __ptr64) __ptr64
??4W3_TRACE_LOG_FACTORY@@QEAAAEAV0@AEBV0@@Z
; public: bool __cdecl CLKRHashTable_Iterator::operator==(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
??8CLKRHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRLinearHashTable_Iterator::operator==(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
??8CLKRLinearHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRHashTable_Iterator::operator!=(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
??9CLKRHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRLinearHashTable_Iterator::operator!=(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
??9CLKRLinearHashTable_Iterator@@QEBA_NAEBV0@@Z
; const  ASCLOG_DATETIME_CACHE::`vftable'
??_7ASCLOG_DATETIME_CACHE@@6B@
; const  CACHED_DATETIME_FORMATS::`vftable'
??_7CACHED_DATETIME_FORMATS@@6B@
; const  EXTLOG_DATETIME_CACHE::`vftable'
??_7EXTLOG_DATETIME_CACHE@@6B@
; const  W3_DATETIME_CACHE::`vftable'
??_7W3_DATETIME_CACHE@@6B@
; public: void __cdecl BUFFER::`default constructor closure'(void) __ptr64
??_FBUFFER@@QEAAXXZ
; public: void __cdecl BUFFER_CHAIN_ITEM::`default constructor closure'(void) __ptr64
??_FBUFFER_CHAIN_ITEM@@QEAAXXZ
; public: void __cdecl CSharelock::`default constructor closure'(void) __ptr64
??_FCSharelock@@QEAAXXZ
ACopyToW
; public: int __cdecl CSharelock::ActiveUsers(void) __ptr64
?ActiveUsers@CSharelock@@QEAAHXZ
; private: long __cdecl CHUNK_BUFFER::AddNewBlock(unsigned long) __ptr64
?AddNewBlock@CHUNK_BUFFER@@AEAAJK@Z
; public: int __cdecl MB::AddObject(unsigned short const * __ptr64) __ptr64
?AddObject@MB@@QEAAHPEBG@Z
; public: virtual unsigned long __cdecl MB_BASE_NOTIFICATION_SINK::AddRef(void) __ptr64
?AddRef@MB_BASE_NOTIFICATION_SINK@@UEAAKXZ
AddWpgToTokenDefaultDacl
; public: unsigned long __cdecl CSecurityDispenser::AdjustTokenForAdministrators(void * __ptr64) __ptr64
?AdjustTokenForAdministrators@CSecurityDispenser@@QEAAKPEAX@Z
; public: void * __ptr64 __cdecl ALLOC_CACHE_HANDLER::Alloc(void) __ptr64
?Alloc@ALLOC_CACHE_HANDLER@@QEAAPEAXXZ
AllocateAndCreateWellKnownAcl
AllocateAndCreateWellKnownSid
; public: long __cdecl CHUNK_BUFFER::AllocateSpace(unsigned long,char * __ptr64 * __ptr64) __ptr64
?AllocateSpace@CHUNK_BUFFER@@QEAAJKPEAPEAD@Z
; public: long __cdecl CHUNK_BUFFER::AllocateSpace(unsigned long,unsigned short * __ptr64 * __ptr64) __ptr64
?AllocateSpace@CHUNK_BUFFER@@QEAAJKPEAPEAG@Z
; public: long __cdecl CHUNK_BUFFER::AllocateSpace(unsigned long,void * __ptr64 * __ptr64) __ptr64
?AllocateSpace@CHUNK_BUFFER@@QEAAJKPEAPEAX@Z
; public: long __cdecl CHUNK_BUFFER::AllocateSpace(char * __ptr64,unsigned long,char * __ptr64 * __ptr64) __ptr64
?AllocateSpace@CHUNK_BUFFER@@QEAAJPEADKPEAPEAD@Z
; public: long __cdecl CHUNK_BUFFER::AllocateSpace(unsigned short * __ptr64,unsigned long,unsigned short * __ptr64 * __ptr64) __ptr64
?AllocateSpace@CHUNK_BUFFER@@QEAAJPEAGKPEAPEAG@Z
AlterDesktopForUser
; public: int __cdecl MULTISZ::Append(class STRU & __ptr64) __ptr64
?Append@MULTISZ@@QEAAHAEAVSTRU@@@Z
; public: int __cdecl MULTISZ::Append(unsigned short const * __ptr64) __ptr64
?Append@MULTISZ@@QEAAHPEBG@Z
; public: int __cdecl MULTISZ::Append(unsigned short const * __ptr64,unsigned long) __ptr64
?Append@MULTISZ@@QEAAHPEBGK@Z
; public: int __cdecl MULTISZA::Append(class STRA & __ptr64) __ptr64
?Append@MULTISZA@@QEAAHAEAVSTRA@@@Z
; public: int __cdecl MULTISZA::Append(char const * __ptr64) __ptr64
?Append@MULTISZA@@QEAAHPEBD@Z
; public: int __cdecl MULTISZA::Append(char const * __ptr64,unsigned long) __ptr64
?Append@MULTISZA@@QEAAHPEBDK@Z
; public: long __cdecl STRA::Append(class STRA const & __ptr64) __ptr64
?Append@STRA@@QEAAJAEBV1@@Z
; public: long __cdecl STRA::Append(char const * __ptr64) __ptr64
?Append@STRA@@QEAAJPEBD@Z
; public: long __cdecl STRA::Append(char const * __ptr64,unsigned long) __ptr64
?Append@STRA@@QEAAJPEBDK@Z
; public: int __cdecl STRAU::Append(class STRAU & __ptr64) __ptr64
?Append@STRAU@@QEAAHAEAV1@@Z
; public: int __cdecl STRAU::Append(char const * __ptr64) __ptr64
?Append@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::Append(char const * __ptr64,unsigned long) __ptr64
?Append@STRAU@@QEAAHPEBDK@Z
; public: int __cdecl STRAU::Append(unsigned short const * __ptr64) __ptr64
?Append@STRAU@@QEAAHPEBG@Z
; public: int __cdecl STRAU::Append(unsigned short const * __ptr64,unsigned long) __ptr64
?Append@STRAU@@QEAAHPEBGK@Z
; public: long __cdecl STRU::Append(class STRU const & __ptr64) __ptr64
?Append@STRU@@QEAAJAEBV1@@Z
; public: long __cdecl STRU::Append(unsigned short const * __ptr64) __ptr64
?Append@STRU@@QEAAJPEBG@Z
; public: long __cdecl STRU::Append(unsigned short const * __ptr64,unsigned long) __ptr64
?Append@STRU@@QEAAJPEBGK@Z
; public: long __cdecl STRU::AppendA(char const * __ptr64) __ptr64
?AppendA@STRU@@QEAAJPEBD@Z
; public: int __cdecl BUFFER_CHAIN::AppendBuffer(class BUFFER_CHAIN_ITEM * __ptr64) __ptr64
?AppendBuffer@BUFFER_CHAIN@@QEAAHPEAVBUFFER_CHAIN_ITEM@@@Z
; public: long __cdecl W3_TRACE_LOG_FACTORY::AppendData(void * __ptr64,unsigned long) __ptr64
?AppendData@W3_TRACE_LOG_FACTORY@@QEAAJPEAXK@Z
; public: int __cdecl MULTISZA::AppendW(unsigned short const * __ptr64) __ptr64
?AppendW@MULTISZA@@QEAAHPEBG@Z
; public: int __cdecl MULTISZA::AppendW(unsigned short const * __ptr64,unsigned long) __ptr64
?AppendW@MULTISZA@@QEAAHPEBGK@Z
; public: long __cdecl STRA::AppendW(unsigned short const * __ptr64) __ptr64
?AppendW@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::AppendW(unsigned short const * __ptr64,unsigned long) __ptr64
?AppendW@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::AppendWTruncate(unsigned short const * __ptr64) __ptr64
?AppendWTruncate@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::AppendWTruncate(unsigned short const * __ptr64,unsigned long) __ptr64
?AppendWTruncate@STRA@@QEAAJPEBGK@Z
; public: unsigned long __cdecl CLKRHashTable::Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?Apply@CLKRHashTable@@QEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRLinearHashTable::Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?Apply@CLKRLinearHashTable@@QEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRHashTable::ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?ApplyIf@CLKRHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRLinearHashTable::ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?ApplyIf@CLKRLinearHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; private: int __cdecl MULTISZ::AuxAppend(unsigned short const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@MULTISZ@@AEAAHPEBGIH@Z
; private: int __cdecl MULTISZA::AuxAppend(unsigned char const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@MULTISZA@@AEAAHPEBEIH@Z
; private: long __cdecl STRA::AuxAppend(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppend@STRA@@AEAAJPEBEKKH@Z
; private: int __cdecl STRAU::AuxAppend(char const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@STRAU@@AEAAHPEBDIH@Z
; private: int __cdecl STRAU::AuxAppend(unsigned short const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@STRAU@@AEAAHPEBGIH@Z
; private: long __cdecl STRU::AuxAppend(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppend@STRU@@AEAAJPEBEKKH@Z
; private: long __cdecl STRU::AuxAppendA(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendA@STRU@@AEAAJPEBEKKH@Z
; private: int __cdecl MULTISZA::AuxAppendW(unsigned short const * __ptr64,unsigned int,int) __ptr64
?AuxAppendW@MULTISZA@@AEAAHPEBGIH@Z
; private: long __cdecl STRA::AuxAppendW(unsigned short const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendW@STRA@@AEAAJPEBGKKH@Z
; private: long __cdecl STRA::AuxAppendWTruncate(unsigned short const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendWTruncate@STRA@@AEAAJPEBGKKH@Z
; private: void __cdecl MULTISZ::AuxInit(unsigned short const * __ptr64) __ptr64
?AuxInit@MULTISZ@@AEAAXPEBG@Z
; private: void __cdecl MULTISZA::AuxInit(unsigned char const * __ptr64) __ptr64
?AuxInit@MULTISZA@@AEAAXPEBE@Z
; private: void __cdecl STRAU::AuxInit(char const * __ptr64) __ptr64
?AuxInit@STRAU@@AEAAXPEBD@Z
; private: void __cdecl STRAU::AuxInit(unsigned short const * __ptr64) __ptr64
?AuxInit@STRAU@@AEAAXPEBG@Z
; public: class CLKRHashTable_Iterator  __cdecl CLKRHashTable::Begin(void) __ptr64
?Begin@CLKRHashTable@@QEAA?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __cdecl CLKRLinearHashTable::Begin(void) __ptr64
?Begin@CLKRLinearHashTable@@QEAA?AVCLKRLinearHashTable_Iterator@@XZ
; public: static long __cdecl CLKRHashTableStats::BucketIndex(long)
?BucketIndex@CLKRHashTableStats@@SAJJ@Z
; public: static long __cdecl CLKRHashTableStats::BucketSize(long)
?BucketSize@CLKRHashTableStats@@SAJJ@Z
; public: static long const * __ptr64 __cdecl CLKRHashTableStats::BucketSizes(void)
?BucketSizes@CLKRHashTableStats@@SAPEBJXZ
; public: static unsigned long __cdecl MULTISZ::CalcLength(unsigned short const * __ptr64,unsigned long * __ptr64)
?CalcLength@MULTISZ@@SAKPEBGPEAK@Z
; public: static unsigned long __cdecl MULTISZA::CalcLength(char const * __ptr64,unsigned long * __ptr64)
?CalcLength@MULTISZA@@SAKPEBDPEAK@Z
; public: unsigned long __cdecl BUFFER_CHAIN::CalcTotalSize(int)const  __ptr64
?CalcTotalSize@BUFFER_CHAIN@@QEBAKH@Z
; public: void __cdecl CSharelock::ChangeExclusiveLockToSharedLock(void) __ptr64
?ChangeExclusiveLockToSharedLock@CSharelock@@QEAAXXZ
; public: unsigned char __cdecl CSharelock::ChangeSharedLockToExclusiveLock(int) __ptr64
?ChangeSharedLockToExclusiveLock@CSharelock@@QEAAEH@Z
; public: int __cdecl CLKRHashTable::CheckTable(void)const  __ptr64
?CheckTable@CLKRHashTable@@QEBAHXZ
; public: int __cdecl CLKRLinearHashTable::CheckTable(void)const  __ptr64
?CheckTable@CLKRLinearHashTable@@QEBAHXZ
; public: unsigned char __cdecl CSharelock::ClaimExclusiveLock(int) __ptr64
?ClaimExclusiveLock@CSharelock@@QEAAEH@Z
; public: unsigned char __cdecl CSharelock::ClaimShareLock(int) __ptr64
?ClaimShareLock@CSharelock@@QEAAEH@Z
; public: static unsigned short const * __ptr64 __cdecl CCritSec::ClassName(void)
?ClassName@CCritSec@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CFakeLock::ClassName(void)
?ClassName@CFakeLock@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CLKRHashTable::ClassName(void)
?ClassName@CLKRHashTable@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CLKRLinearHashTable::ClassName(void)
?ClassName@CLKRLinearHashTable@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock2::ClassName(void)
?ClassName@CReaderWriterLock2@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock3::ClassName(void)
?ClassName@CReaderWriterLock3@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock::ClassName(void)
?ClassName@CReaderWriterLock@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CRtlResource::ClassName(void)
?ClassName@CRtlResource@@SAPEBDXZ
; public: static char const * __ptr64 __cdecl CShareLock::ClassName(void)
?ClassName@CShareLock@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CSmallSpinLock::ClassName(void)
?ClassName@CSmallSpinLock@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CSpinLock::ClassName(void)
?ClassName@CSpinLock@@SAPEBGXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::Cleanup(void)
?Cleanup@ALLOC_CACHE_HANDLER@@SAHXZ
; public: static void __cdecl ALLOC_CACHE_HANDLER::CleanupAllLookasides(void * __ptr64,unsigned char)
?CleanupAllLookasides@ALLOC_CACHE_HANDLER@@SAXPEAXE@Z
; public: void __cdecl ALLOC_CACHE_HANDLER::CleanupLookaside(int) __ptr64
?CleanupLookaside@ALLOC_CACHE_HANDLER@@QEAAXH@Z
; public: void __cdecl CLKRHashTable::Clear(void) __ptr64
?Clear@CLKRHashTable@@QEAAXXZ
; public: void __cdecl CLKRLinearHashTable::Clear(void) __ptr64
?Clear@CLKRLinearHashTable@@QEAAXXZ
; public: void __cdecl W3_TRACE_LOG::ClearBuffer(void) __ptr64
?ClearBuffer@W3_TRACE_LOG@@QEAAXXZ
; public: int __cdecl MULTISZ::Clone(class MULTISZ * __ptr64)const  __ptr64
?Clone@MULTISZ@@QEBAHPEAV1@@Z
; public: int __cdecl MULTISZA::Clone(class MULTISZA * __ptr64)const  __ptr64
?Clone@MULTISZA@@QEBAHPEAV1@@Z
; public: long __cdecl STRA::Clone(class STRA * __ptr64)const  __ptr64
?Clone@STRA@@QEBAJPEAV1@@Z
; public: int __cdecl MB::Close(void) __ptr64
?Close@MB@@QEAAHXZ
CompareStringNoCase
; public: void __cdecl TS_RESOURCE::Convert(enum TSRES_CONV_TYPE) __ptr64
?Convert@TS_RESOURCE@@QEAAXW4TSRES_CONV_TYPE@@@Z
; public: void __cdecl CCritSec::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ConvertExclusiveToShared(void)const  __ptr64
?ConvertExclusiveToShared@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ConvertExclusiveToShared(void)const  __ptr64
?ConvertExclusiveToShared@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CSpinLock@@QEAAXXZ
; public: void __cdecl CCritSec::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ConvertSharedToExclusive(void)const  __ptr64
?ConvertSharedToExclusive@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ConvertSharedToExclusive(void)const  __ptr64
?ConvertSharedToExclusive@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CSpinLock@@QEAAXXZ
ConvertUnicodeToMultiByte
; public: int __cdecl MULTISZ::Copy(class MULTISZ const & __ptr64) __ptr64
?Copy@MULTISZ@@QEAAHAEBV1@@Z
; public: int __cdecl MULTISZ::Copy(unsigned short const * __ptr64,unsigned long) __ptr64
?Copy@MULTISZ@@QEAAHPEBGK@Z
; public: int __cdecl MULTISZA::Copy(class MULTISZA const & __ptr64) __ptr64
?Copy@MULTISZA@@QEAAHAEBV1@@Z
; public: int __cdecl MULTISZA::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@MULTISZA@@QEAAHPEBDK@Z
; public: long __cdecl STRA::Copy(class STRA const & __ptr64) __ptr64
?Copy@STRA@@QEAAJAEBV1@@Z
; public: long __cdecl STRA::Copy(char const * __ptr64) __ptr64
?Copy@STRA@@QEAAJPEBD@Z
; public: long __cdecl STRA::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@STRA@@QEAAJPEBDK@Z
; public: int __cdecl STRAU::Copy(class STRAU & __ptr64) __ptr64
?Copy@STRAU@@QEAAHAEAV1@@Z
; public: int __cdecl STRAU::Copy(char const * __ptr64) __ptr64
?Copy@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@STRAU@@QEAAHPEBDK@Z
; public: int __cdecl STRAU::Copy(unsigned short const * __ptr64) __ptr64
?Copy@STRAU@@QEAAHPEBG@Z
; public: int __cdecl STRAU::Copy(unsigned short const * __ptr64,unsigned long) __ptr64
?Copy@STRAU@@QEAAHPEBGK@Z
; public: long __cdecl STRU::Copy(class STRU const & __ptr64) __ptr64
?Copy@STRU@@QEAAJAEBV1@@Z
; public: long __cdecl STRU::Copy(unsigned short const * __ptr64) __ptr64
?Copy@STRU@@QEAAJPEBG@Z
; public: long __cdecl STRU::Copy(unsigned short const * __ptr64,unsigned long) __ptr64
?Copy@STRU@@QEAAJPEBGK@Z
; public: long __cdecl STRU::CopyA(char const * __ptr64) __ptr64
?CopyA@STRU@@QEAAJPEBD@Z
; public: long __cdecl STRU::CopyA(char const * __ptr64,unsigned long) __ptr64
?CopyA@STRU@@QEAAJPEBDK@Z
; public: long __cdecl STRA::CopyBinary(void * __ptr64,unsigned long) __ptr64
?CopyBinary@STRA@@QEAAJPEAXK@Z
; public: int __cdecl CDFTCache::CopyFormattedData(struct _SYSTEMTIME const * __ptr64,char * __ptr64)const  __ptr64
?CopyFormattedData@CDFTCache@@QEBAHPEBU_SYSTEMTIME@@PEAD@Z
; public: void __cdecl DATETIME_FORMAT_ENTRY::CopyFormattedData(struct _SYSTEMTIME const * __ptr64,char * __ptr64)const  __ptr64
?CopyFormattedData@DATETIME_FORMAT_ENTRY@@QEBAXPEBU_SYSTEMTIME@@PEAD@Z
; public: int __cdecl MULTISZ::CopyToBuffer(unsigned short * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@MULTISZ@@QEBAHPEAGPEAK@Z
; public: int __cdecl MULTISZA::CopyToBuffer(char * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@MULTISZA@@QEBAHPEADPEAK@Z
; public: long __cdecl STRA::CopyToBuffer(char * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STRA@@QEBAJPEADPEAK@Z
; public: long __cdecl STRU::CopyToBuffer(unsigned short * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STRU@@QEBAJPEAGPEAK@Z
; public: long __cdecl STRA::CopyW(unsigned short const * __ptr64) __ptr64
?CopyW@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyW(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyW@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWToUTF8(class STRU const & __ptr64) __ptr64
?CopyWToUTF8@STRA@@QEAAJAEBVSTRU@@@Z
; public: long __cdecl STRA::CopyWToUTF8(unsigned short const * __ptr64) __ptr64
?CopyWToUTF8@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWToUTF8(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWToUTF8@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(class STRU const & __ptr64) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJAEBVSTRU@@@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(unsigned short const * __ptr64) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWTruncate(unsigned short const * __ptr64) __ptr64
?CopyWTruncate@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWTruncate(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWTruncate@STRA@@QEAAJPEBGK@Z
; public: static long __cdecl IPM_MESSAGE_PIPE::CreateIpmMessagePipe(class IPM_MESSAGE_ACCEPTOR * __ptr64,unsigned short const * __ptr64,int,struct _SECURITY_ATTRIBUTES * __ptr64,class IPM_MESSAGE_PIPE * __ptr64 * __ptr64)
?CreateIpmMessagePipe@IPM_MESSAGE_PIPE@@SAJPEAVIPM_MESSAGE_ACCEPTOR@@PEBGHPEAU_SECURITY_ATTRIBUTES@@PEAPEAV1@@Z
; public: long __cdecl W3_TRACE_LOG_FACTORY::CreateTraceLog(class W3_TRACE_LOG * __ptr64 * __ptr64) __ptr64
?CreateTraceLog@W3_TRACE_LOG_FACTORY@@QEAAJPEAPEAVW3_TRACE_LOG@@@Z
; public: static long __cdecl W3_TRACE_LOG_FACTORY::CreateTraceLogFactory(class W3_TRACE_LOG_FACTORY * __ptr64 * __ptr64,void * __ptr64)
?CreateTraceLogFactory@W3_TRACE_LOG_FACTORY@@SAJPEAPEAV1@PEAX@Z
; public: unsigned long __cdecl CDFTCache::DateTimeChars(void)const  __ptr64
?DateTimeChars@CDFTCache@@QEBAKXZ
; char const * __ptr64 __cdecl DayOfWeek3CharNames(unsigned long)
?DayOfWeek3CharNames@@YAPEBDK@Z
; private: void __cdecl IPM_MESSAGE_PIPE::DecrementAcceptorInUse(void) __ptr64
?DecrementAcceptorInUse@IPM_MESSAGE_PIPE@@AEAAXXZ
DecryptMemoryPassword
; public: unsigned long __cdecl BUFFER_CHAIN::DeleteChain(void) __ptr64
?DeleteChain@BUFFER_CHAIN@@QEAAKXZ
; public: int __cdecl MB::DeleteData(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) __ptr64
?DeleteData@MB@@QEAAHPEBGKKK@Z
; public: unsigned long __cdecl CLKRHashTable::DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64) __ptr64
?DeleteIf@CLKRHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1@Z
; public: unsigned long __cdecl CLKRLinearHashTable::DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64) __ptr64
?DeleteIf@CLKRLinearHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::DeleteKey(unsigned __int64) __ptr64
?DeleteKey@CLKRHashTable@@QEAA?AW4LK_RETCODE@@_K@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::DeleteKey(unsigned __int64) __ptr64
?DeleteKey@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@_K@Z
; public: int __cdecl MB::DeleteObject(unsigned short const * __ptr64) __ptr64
?DeleteObject@MB@@QEAAHPEBG@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::DeleteRecord(void const * __ptr64) __ptr64
?DeleteRecord@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::DeleteRecord(void const * __ptr64) __ptr64
?DeleteRecord@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEBX@Z
; public: void __cdecl IPM_MESSAGE_PIPE::DestroyIpmMessagePipe(void) __ptr64
?DestroyIpmMessagePipe@IPM_MESSAGE_PIPE@@QEAAXXZ
; public: void __cdecl W3_TRACE_LOG::DestroyTraceLog(void) __ptr64
?DestroyTraceLog@W3_TRACE_LOG@@QEAAXXZ
; public: void __cdecl W3_TRACE_LOG_FACTORY::DestroyTraceLogFactory(void) __ptr64
?DestroyTraceLogFactory@W3_TRACE_LOG_FACTORY@@QEAAXXZ
; public: virtual unsigned long __cdecl CEtwTracer::DisableEventsCallbackCustomHandler(void) __ptr64
?DisableEventsCallbackCustomHandler@CEtwTracer@@UEAAKXZ
DisableTokenBackupPrivilege
; public: static int __cdecl ALLOC_CACHE_HANDLER::DumpStatsToHtml(char * __ptr64,unsigned long * __ptr64)
?DumpStatsToHtml@ALLOC_CACHE_HANDLER@@SAHPEADPEAK@Z
DupTokenWithSameImpersonationLevel
; public: virtual unsigned long __cdecl CEtwTracer::EnableEventsCallbackCustomHandler(void) __ptr64
?EnableEventsCallbackCustomHandler@CEtwTracer@@UEAAKXZ
EncryptMemoryPassword
; public: class CLKRHashTable_Iterator  __cdecl CLKRHashTable::End(void) __ptr64
?End@CLKRHashTable@@QEAA?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __cdecl CLKRLinearHashTable::End(void) __ptr64
?End@CLKRLinearHashTable@@QEAA?AVCLKRLinearHashTable_Iterator@@XZ
; public: int __cdecl MB::EnumObjects(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?EnumObjects@MB@@QEAAHPEBGPEAGK@Z
; public: bool __cdecl CLKRHashTable::EqualRange(unsigned __int64,class CLKRHashTable_Iterator & __ptr64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?EqualRange@CLKRHashTable@@QEAA_N_KAEAVCLKRHashTable_Iterator@@1@Z
; public: bool __cdecl CLKRLinearHashTable::EqualRange(unsigned __int64,class CLKRLinearHashTable_Iterator & __ptr64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?EqualRange@CLKRLinearHashTable@@QEAA_N_KAEAVCLKRLinearHashTable_Iterator@@1@Z
; public: int __cdecl STRA::Equals(class STRA const & __ptr64)const  __ptr64
?Equals@STRA@@QEBAHAEBV1@@Z
; public: int __cdecl STRA::Equals(char * __ptr64 const)const  __ptr64
?Equals@STRA@@QEBAHQEAD@Z
; public: int __cdecl STRU::Equals(class STRU const & __ptr64)const  __ptr64
?Equals@STRU@@QEBAHAEBV1@@Z
; public: int __cdecl STRU::Equals(unsigned short const * __ptr64)const  __ptr64
?Equals@STRU@@QEBAHPEBG@Z
; public: int __cdecl STRA::EqualsNoCase(class STRA const & __ptr64)const  __ptr64
?EqualsNoCase@STRA@@QEBAHAEBV1@@Z
; public: int __cdecl STRA::EqualsNoCase(char * __ptr64 const)const  __ptr64
?EqualsNoCase@STRA@@QEBAHQEAD@Z
; public: int __cdecl STRU::EqualsNoCase(class STRU const & __ptr64)const  __ptr64
?EqualsNoCase@STRU@@QEBAHAEBV1@@Z
; public: int __cdecl STRU::EqualsNoCase(unsigned short const * __ptr64)const  __ptr64
?EqualsNoCase@STRU@@QEBAHPEBG@Z
; public: bool __cdecl CLKRHashTable::Erase(class CLKRHashTable_Iterator & __ptr64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRHashTable@@QEAA_NAEAVCLKRHashTable_Iterator@@0@Z
; public: bool __cdecl CLKRHashTable::Erase(class CLKRHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRHashTable@@QEAA_NAEAVCLKRHashTable_Iterator@@@Z
; public: bool __cdecl CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator & __ptr64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRLinearHashTable@@QEAA_NAEAVCLKRLinearHashTable_Iterator@@0@Z
; public: bool __cdecl CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRLinearHashTable@@QEAA_NAEAVCLKRLinearHashTable_Iterator@@@Z
; public: long __cdecl STRA::Escape(int,int) __ptr64
?Escape@STRA@@QEAAJHH@Z
; public: long __cdecl STRU::Escape(void) __ptr64
?Escape@STRU@@QEAAJXZ
; public: unsigned long __cdecl CEtwTracer::EtwTraceEvent(struct _GUID const * __ptr64,unsigned long,...) __ptr64
?EtwTraceEvent@CEtwTracer@@QEAAKPEBU_GUID@@KZZ
; int __cdecl FileTimeToGMT(struct _FILETIME const & __ptr64,char * __ptr64,unsigned long)
?FileTimeToGMT@@YAHAEBU_FILETIME@@PEADK@Z
; int __cdecl FileTimeToGMTEx(struct _FILETIME const & __ptr64,char * __ptr64,unsigned long,unsigned long)
?FileTimeToGMTEx@@YAHAEBU_FILETIME@@PEADKK@Z
; public: bool __cdecl CLKRHashTable::Find(unsigned __int64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?Find@CLKRHashTable@@QEAA_N_KAEAVCLKRHashTable_Iterator@@@Z
; public: bool __cdecl CLKRLinearHashTable::Find(unsigned __int64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Find@CLKRLinearHashTable@@QEAA_N_KAEAVCLKRLinearHashTable_Iterator@@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::FindKey(unsigned __int64,void const * __ptr64 * __ptr64)const  __ptr64
?FindKey@CLKRHashTable@@QEBA?AW4LK_RETCODE@@_KPEAPEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::FindKey(unsigned __int64,void const * __ptr64 * __ptr64)const  __ptr64
?FindKey@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@_KPEAPEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::FindRecord(void const * __ptr64)const  __ptr64
?FindRecord@CLKRHashTable@@QEBA?AW4LK_RETCODE@@PEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::FindRecord(void const * __ptr64)const  __ptr64
?FindRecord@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@PEBX@Z
; public: int __cdecl MULTISZ::FindString(class STRU & __ptr64) __ptr64
?FindString@MULTISZ@@QEAAHAEAVSTRU@@@Z
; public: int __cdecl MULTISZ::FindString(unsigned short const * __ptr64) __ptr64
?FindString@MULTISZ@@QEAAHPEBG@Z
; public: int __cdecl MULTISZA::FindString(class STRA & __ptr64) __ptr64
?FindString@MULTISZA@@QEAAHAEAVSTRA@@@Z
; public: int __cdecl MULTISZA::FindString(char const * __ptr64) __ptr64
?FindString@MULTISZA@@QEAAHPEBD@Z
; public: int __cdecl MULTISZ::FindStringNoCase(class STRU & __ptr64) __ptr64
?FindStringNoCase@MULTISZ@@QEAAHAEAVSTRU@@@Z
; public: int __cdecl MULTISZ::FindStringNoCase(unsigned short const * __ptr64) __ptr64
?FindStringNoCase@MULTISZ@@QEAAHPEBG@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::First(void)const  __ptr64
?First@CDoubleList@@QEBAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::First(void) __ptr64
?First@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: unsigned short const * __ptr64 __cdecl MULTISZ::First(void)const  __ptr64
?First@MULTISZ@@QEBAPEBGXZ
; public: char const * __ptr64 __cdecl MULTISZA::First(void)const  __ptr64
?First@MULTISZA@@QEBAPEBDXZ
FlipSlashes
; public: long __cdecl STRA::FormatString(unsigned long,char const * __ptr64 * __ptr64 const,char const * __ptr64,unsigned long) __ptr64
?FormatString@STRA@@QEAAJKQEAPEBDPEBDK@Z
; public: char const * __ptr64 __cdecl CDFTCache::FormattedBuffer(void)const  __ptr64
?FormattedBuffer@CDFTCache@@QEBAPEBDXZ
; public: int __cdecl ALLOC_CACHE_HANDLER::Free(void * __ptr64) __ptr64
?Free@ALLOC_CACHE_HANDLER@@QEAAHPEAX@Z
; public: void __cdecl CHUNK_BUFFER::FreeAllAllocatedSpace(void) __ptr64
?FreeAllAllocatedSpace@CHUNK_BUFFER@@QEAAXXZ
; public: void __cdecl BUFFER::FreeMemory(void) __ptr64
?FreeMemory@BUFFER@@QEAAXXZ
FreeSecurityAttributes
FreeWellKnownAcl
FreeWellKnownSid
; public: virtual void __cdecl ASCLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@ASCLOG_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
; public: virtual void __cdecl EXTLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@EXTLOG_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
; public: virtual void __cdecl W3_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@W3_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
GenerateNameWithGUID
; public: int __cdecl MB::GetAll(unsigned short const * __ptr64,unsigned long,unsigned long,class BUFFER * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?GetAll@MB@@QEAAHPEBGKKPEAVBUFFER@@PEAK2@Z
; public: unsigned short __cdecl CLKRHashTable::GetBucketLockSpinCount(void)const  __ptr64
?GetBucketLockSpinCount@CLKRHashTable@@QEBAGXZ
; public: unsigned short __cdecl CLKRLinearHashTable::GetBucketLockSpinCount(void)const  __ptr64
?GetBucketLockSpinCount@CLKRLinearHashTable@@QEBAGXZ
; public: int __cdecl MB::GetBuffer(unsigned short const * __ptr64,unsigned long,unsigned long,class BUFFER * __ptr64,unsigned long * __ptr64,unsigned long) __ptr64
?GetBuffer@MB@@QEAAHPEBGKKPEAVBUFFER@@PEAKK@Z
; public: int __cdecl MB::GetChildPaths(unsigned short const * __ptr64,class BUFFER * __ptr64) __ptr64
?GetChildPaths@MB@@QEAAHPEBGPEAVBUFFER@@@Z
; public: int __cdecl MB::GetData(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,void * __ptr64,unsigned long * __ptr64,unsigned long) __ptr64
?GetData@MB@@QEAAHPEBGKKKPEAXPEAKK@Z
; public: int __cdecl MB::GetDataPaths(unsigned short const * __ptr64,unsigned long,unsigned long,class BUFFER * __ptr64) __ptr64
?GetDataPaths@MB@@QEAAHPEBGKKPEAVBUFFER@@@Z
; public: int __cdecl MB::GetDataSetNumber(unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?GetDataSetNumber@MB@@QEAAHPEBGPEAK@Z
; public: static double __cdecl CCritSec::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CCritSec@@SANXZ
; public: static double __cdecl CFakeLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CFakeLock@@SANXZ
; public: static double __cdecl CReaderWriterLock2::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SANXZ
; public: static double __cdecl CReaderWriterLock3::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SANXZ
; public: static double __cdecl CReaderWriterLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SANXZ
; public: static double __cdecl CRtlResource::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CRtlResource@@SANXZ
; public: static double __cdecl CShareLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CShareLock@@SANXZ
; public: static double __cdecl CSmallSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SANXZ
; public: static double __cdecl CSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSpinLock@@SANXZ
; public: static unsigned short __cdecl CCritSec::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CCritSec@@SAGXZ
; public: static unsigned short __cdecl CFakeLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CFakeLock@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock2::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock2@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock3::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock3@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock@@SAGXZ
; public: static unsigned short __cdecl CRtlResource::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CRtlResource@@SAGXZ
; public: static unsigned short __cdecl CShareLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CShareLock@@SAGXZ
; public: static unsigned short __cdecl CSmallSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSmallSpinLock@@SAGXZ
; public: static unsigned short __cdecl CSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSpinLock@@SAGXZ
; public: int __cdecl MB::GetDword(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long) __ptr64
?GetDword@MB@@QEAAHPEBGKKPEAKK@Z
; public: void __cdecl MB::GetDword(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long) __ptr64
?GetDword@MB@@QEAAXPEBGKKKPEAKK@Z
; public: unsigned long __cdecl EVENT_LOG::GetErrorCode(void)const  __ptr64
?GetErrorCode@EVENT_LOG@@QEBAKXZ
; public: unsigned long __cdecl CACHED_DATETIME_FORMATS::GetFormattedCurrentDateTime(char * __ptr64) __ptr64
?GetFormattedCurrentDateTime@CACHED_DATETIME_FORMATS@@QEAAKPEAD@Z
; public: unsigned long __cdecl CACHED_DATETIME_FORMATS::GetFormattedDateTime(struct _SYSTEMTIME const * __ptr64,char * __ptr64) __ptr64
?GetFormattedDateTime@CACHED_DATETIME_FORMATS@@QEAAKPEBU_SYSTEMTIME@@PEAD@Z
; public: unsigned long __cdecl CSecurityDispenser::GetIisWpgSID(void * __ptr64 * __ptr64) __ptr64
?GetIisWpgSID@CSecurityDispenser@@QEAAKPEAPEAX@Z
; public: int __cdecl MB::GetMultisz(unsigned short const * __ptr64,unsigned long,unsigned long,class MULTISZ * __ptr64,unsigned long) __ptr64
?GetMultisz@MB@@QEAAHPEBGKKPEAVMULTISZ@@K@Z
; private: int __cdecl BUFFER::GetNewStorage(unsigned int) __ptr64
?GetNewStorage@BUFFER@@AEAAHI@Z
; public: unsigned long __cdecl CSecurityDispenser::GetSID(enum WELL_KNOWN_SID_TYPE,void * __ptr64 * __ptr64) __ptr64
?GetSID@CSecurityDispenser@@QEAAKW4WELL_KNOWN_SID_TYPE@@PEAPEAX@Z
GetSecurityAttributesForHandle
; public: unsigned short __cdecl CCritSec::GetSpinCount(void)const  __ptr64
?GetSpinCount@CCritSec@@QEBAGXZ
; public: unsigned short __cdecl CFakeLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CFakeLock@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock2::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock2@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock3::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock3@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock@@QEBAGXZ
; public: unsigned short __cdecl CRtlResource::GetSpinCount(void)const  __ptr64
?GetSpinCount@CRtlResource@@QEBAGXZ
; public: unsigned short __cdecl CShareLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CShareLock@@QEBAGXZ
; public: unsigned short __cdecl CSmallSpinLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CSmallSpinLock@@QEBAGXZ
; public: unsigned short __cdecl CSpinLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CSpinLock@@QEBAGXZ
; public: class CLKRHashTableStats  __cdecl CLKRHashTable::GetStatistics(void)const  __ptr64
?GetStatistics@CLKRHashTable@@QEBA?AVCLKRHashTableStats@@XZ
; public: class CLKRHashTableStats  __cdecl CLKRLinearHashTable::GetStatistics(void)const  __ptr64
?GetStatistics@CLKRLinearHashTable@@QEBA?AVCLKRHashTableStats@@XZ
; public: int __cdecl MB::GetStr(unsigned short const * __ptr64,unsigned long,unsigned long,class STRU * __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
?GetStr@MB@@QEAAHPEBGKKPEAVSTRU@@K0@Z
; public: int __cdecl MB::GetString(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned short * __ptr64,unsigned long * __ptr64,unsigned long) __ptr64
?GetString@MB@@QEAAHPEBGKKPEAGPEAKK@Z
; public: int __cdecl MB::GetSystemChangeNumber(unsigned long * __ptr64) __ptr64
?GetSystemChangeNumber@MB@@QEAAHPEAK@Z
; public: unsigned short __cdecl CLKRHashTable::GetTableLockSpinCount(void)const  __ptr64
?GetTableLockSpinCount@CLKRHashTable@@QEBAGXZ
; public: unsigned short __cdecl CLKRLinearHashTable::GetTableLockSpinCount(void)const  __ptr64
?GetTableLockSpinCount@CLKRLinearHashTable@@QEBAGXZ
; public: int __cdecl CDateTime::GetTickCount(void) __ptr64
?GetTickCount@CDateTime@@QEAAHXZ
GrantWpgAccessToToken
; public: long __cdecl STRA::HTMLEncode(void) __ptr64
?HTMLEncode@STRA@@QEAAJXZ
; public: class CListEntry const * __ptr64 __cdecl CDoubleList::HeadNode(void)const  __ptr64
?HeadNode@CDoubleList@@QEBAQEBVCListEntry@@XZ
; public: class CListEntry const * __ptr64 __cdecl CLockedDoubleList::HeadNode(void)const  __ptr64
?HeadNode@CLockedDoubleList@@QEBAQEBVCListEntry@@XZ
; public: bool __cdecl CLKRHashTable_Iterator::Increment(void) __ptr64
?Increment@CLKRHashTable_Iterator@@QEAA_NXZ
; public: bool __cdecl CLKRLinearHashTable_Iterator::Increment(void) __ptr64
?Increment@CLKRLinearHashTable_Iterator@@QEAA_NXZ
; private: void __cdecl IPM_MESSAGE_PIPE::IncrementAcceptorInUse(void) __ptr64
?IncrementAcceptorInUse@IPM_MESSAGE_PIPE@@AEAAXXZ
; public: void __cdecl W3_TRACE_LOG::Indent(void) __ptr64
?Indent@W3_TRACE_LOG@@QEAAXXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::Initialize(void)
?Initialize@ALLOC_CACHE_HANDLER@@SAHXZ
; private: void __cdecl CHUNK_BUFFER::Initialize(void) __ptr64
?Initialize@CHUNK_BUFFER@@AEAAXXZ
; public: bool __cdecl CLKRHashTable::Insert(void const * __ptr64,class CLKRHashTable_Iterator & __ptr64,bool) __ptr64
?Insert@CLKRHashTable@@QEAA_NPEBXAEAVCLKRHashTable_Iterator@@_N@Z
; public: bool __cdecl CLKRLinearHashTable::Insert(void const * __ptr64,class CLKRLinearHashTable_Iterator & __ptr64,bool) __ptr64
?Insert@CLKRLinearHashTable@@QEAA_NPEBXAEAVCLKRLinearHashTable_Iterator@@_N@Z
; public: void __cdecl CDoubleList::InsertHead(class CListEntry * __ptr64 const) __ptr64
?InsertHead@CDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::InsertHead(class CListEntry * __ptr64 const) __ptr64
?InsertHead@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: static void __cdecl ALLOC_CACHE_HANDLER::InsertNewItem(class ALLOC_CACHE_HANDLER * __ptr64)
?InsertNewItem@ALLOC_CACHE_HANDLER@@SAXPEAV1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::InsertRecord(void const * __ptr64,bool) __ptr64
?InsertRecord@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEBX_N@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::InsertRecord(void const * __ptr64,bool) __ptr64
?InsertRecord@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEBX_N@Z
; public: void __cdecl CDoubleList::InsertTail(class CListEntry * __ptr64 const) __ptr64
?InsertTail@CDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::InsertTail(class CListEntry * __ptr64 const) __ptr64
?InsertTail@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: int __cdecl ALLOC_CACHE_HANDLER::IpPrint(char * __ptr64,unsigned long * __ptr64) __ptr64
?IpPrint@ALLOC_CACHE_HANDLER@@QEAAHPEADPEAK@Z
; public: void __cdecl IPM_MESSAGE_PIPE::IpmMessageCreated(class IPM_MESSAGE_IMP * __ptr64) __ptr64
?IpmMessageCreated@IPM_MESSAGE_PIPE@@QEAAXPEAVIPM_MESSAGE_IMP@@@Z
; public: void __cdecl IPM_MESSAGE_PIPE::IpmMessageDeleted(class IPM_MESSAGE_IMP * __ptr64) __ptr64
?IpmMessageDeleted@IPM_MESSAGE_PIPE@@QEAAXPEAVIPM_MESSAGE_IMP@@@Z
; public: int __cdecl STRAU::IsCurrentUnicode(void) __ptr64
?IsCurrentUnicode@STRAU@@QEAAHXZ
; private: int __cdecl BUFFER::IsDynAlloced(void)const  __ptr64
?IsDynAlloced@BUFFER@@AEBAHXZ
; public: bool __cdecl CDoubleList::IsEmpty(void)const  __ptr64
?IsEmpty@CDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedDoubleList::IsEmpty(void)const  __ptr64
?IsEmpty@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsEmpty(void)const  __ptr64
?IsEmpty@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CSingleList::IsEmpty(void)const  __ptr64
?IsEmpty@CSingleList@@QEBA_NXZ
; public: int __cdecl MULTISZ::IsEmpty(void)const  __ptr64
?IsEmpty@MULTISZ@@QEBAHXZ
; public: int __cdecl MULTISZA::IsEmpty(void)const  __ptr64
?IsEmpty@MULTISZA@@QEBAHXZ
; public: int __cdecl STRA::IsEmpty(void)const  __ptr64
?IsEmpty@STRA@@QEBAHXZ
; public: int __cdecl STRAU::IsEmpty(void) __ptr64
?IsEmpty@STRAU@@QEAAHXZ
; public: int __cdecl STRU::IsEmpty(void)const  __ptr64
?IsEmpty@STRU@@QEBAHXZ
; public: int __cdecl CDFTCache::IsHit(struct _SYSTEMTIME const * __ptr64)const  __ptr64
?IsHit@CDFTCache@@QEBAHPEBU_SYSTEMTIME@@@Z
; public: int __cdecl DATETIME_FORMAT_ENTRY::IsHit(struct _SYSTEMTIME const * __ptr64)const  __ptr64
?IsHit@DATETIME_FORMAT_ENTRY@@QEBAHPEBU_SYSTEMTIME@@@Z
; public: bool __cdecl CLockedDoubleList::IsLocked(void)const  __ptr64
?IsLocked@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsLocked(void)const  __ptr64
?IsLocked@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsReadLocked(void)const  __ptr64
?IsReadLocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsReadLocked(void)const  __ptr64
?IsReadLocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsReadLocked(void)const  __ptr64
?IsReadLocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsReadLocked(void)const  __ptr64
?IsReadLocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CSpinLock@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CSpinLock@@QEBA_NXZ
IsSSLReportingBackwardCompatibilityMode
; public: bool __cdecl CLockedDoubleList::IsUnlocked(void)const  __ptr64
?IsUnlocked@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsUnlocked(void)const  __ptr64
?IsUnlocked@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsUsable(void)const  __ptr64
?IsUsable@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsUsable(void)const  __ptr64
?IsUsable@CLKRLinearHashTable@@QEBA_NXZ
; public: int __cdecl ALLOC_CACHE_HANDLER::IsValid(void)const  __ptr64
?IsValid@ALLOC_CACHE_HANDLER@@QEBAHXZ
; public: int __cdecl BUFFER::IsValid(void)const  __ptr64
?IsValid@BUFFER@@QEBAHXZ
; public: bool __cdecl CLKRHashTable::IsValid(void)const  __ptr64
?IsValid@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable_Iterator::IsValid(void)const  __ptr64
?IsValid@CLKRHashTable_Iterator@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsValid(void)const  __ptr64
?IsValid@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable_Iterator::IsValid(void)const  __ptr64
?IsValid@CLKRLinearHashTable_Iterator@@QEBA_NXZ
; public: int __cdecl IPM_MESSAGE_PIPE::IsValid(void) __ptr64
?IsValid@IPM_MESSAGE_PIPE@@QEAAHXZ
; public: int __cdecl MULTISZ::IsValid(void)const  __ptr64
?IsValid@MULTISZ@@QEBAHXZ
; public: int __cdecl MULTISZA::IsValid(void)const  __ptr64
?IsValid@MULTISZA@@QEBAHXZ
; public: int __cdecl STRA::IsValid(void)const  __ptr64
?IsValid@STRA@@QEBAHXZ
; public: int __cdecl STRAU::IsValid(void) __ptr64
?IsValid@STRAU@@QEAAHXZ
; public: bool __cdecl CCritSec::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CSpinLock@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CSpinLock@@QEBA_NXZ
; public: unsigned __int64 const  __cdecl CLKRHashTable_Iterator::Key(void)const  __ptr64
?Key@CLKRHashTable_Iterator@@QEBA?B_KXZ
; public: unsigned __int64 const  __cdecl CLKRLinearHashTable_Iterator::Key(void)const  __ptr64
?Key@CLKRLinearHashTable_Iterator@@QEBA?B_KXZ
; public: class CListEntry * __ptr64 __cdecl CDoubleList::Last(void)const  __ptr64
?Last@CDoubleList@@QEBAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::Last(void) __ptr64
?Last@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: long __cdecl STRA::LoadStringW(unsigned long,struct HINSTANCE__ * __ptr64) __ptr64
?LoadStringW@STRA@@QEAAJKPEAUHINSTANCE__@@@Z
; public: long __cdecl STRA::LoadStringW(unsigned long,char const * __ptr64,unsigned long) __ptr64
?LoadStringW@STRA@@QEAAJKPEBDK@Z
; private: void __cdecl ALLOC_CACHE_HANDLER::Lock(void) __ptr64
?Lock@ALLOC_CACHE_HANDLER@@AEAAXXZ
; public: void __cdecl CLockedDoubleList::Lock(void) __ptr64
?Lock@CLockedDoubleList@@QEAAXXZ
; public: void __cdecl CLockedSingleList::Lock(void) __ptr64
?Lock@CLockedSingleList@@QEAAXXZ
; public: void __cdecl TS_RESOURCE::Lock(enum TSRES_LOCK_TYPE) __ptr64
?Lock@TS_RESOURCE@@QEAAXW4TSRES_LOCK_TYPE@@@Z
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<1,1,3,1,3,2>::LockType(void)
?LockType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<2,1,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<3,1,1,1,1,1>::LockType(void)
?LockType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<4,1,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<5,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<6,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<7,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<8,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<9,2,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: void __cdecl EVENT_LOG::LogEvent(unsigned long,unsigned short,unsigned short const * __ptr64 * __ptr64 const,unsigned long) __ptr64
?LogEvent@EVENT_LOG@@QEAAXKGQEAPEBGK@Z
; private: void __cdecl EVENT_LOG::LogEventPrivate(unsigned long,unsigned short,unsigned short,unsigned short const * __ptr64 * __ptr64 const,unsigned long) __ptr64
?LogEventPrivate@EVENT_LOG@@AEAAXKGGQEAPEBGK@Z
LookupTokenAccountName
MakeAllProcessHeapsLFH
MakePathCanonicalizationProof
; public: unsigned long __cdecl CLKRHashTable::MaxSize(void)const  __ptr64
?MaxSize@CLKRHashTable@@QEBAKXZ
; public: unsigned long __cdecl CLKRLinearHashTable::MaxSize(void)const  __ptr64
?MaxSize@CLKRLinearHashTable@@QEBAKXZ
; public: static void __cdecl IPM_MESSAGE_PIPE::MessagePipeCompletion(void * __ptr64,unsigned char)
?MessagePipeCompletion@IPM_MESSAGE_PIPE@@SAXPEAXE@Z
; char const * __ptr64 __cdecl Month3CharNames(unsigned long)
?Month3CharNames@@YAPEBDK@Z
; public: bool __cdecl CLKRHashTable::MultiKeys(void)const  __ptr64
?MultiKeys@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::MultiKeys(void)const  __ptr64
?MultiKeys@CLKRLinearHashTable@@QEBA_NXZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<1,1,3,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<2,1,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<3,1,1,1,1,1>::MutexType(void)
?MutexType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<4,1,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<5,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<6,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<7,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<8,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<9,2,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: unsigned short const * __ptr64 __cdecl MULTISZ::Next(unsigned short const * __ptr64)const  __ptr64
?Next@MULTISZ@@QEBAPEBGPEBG@Z
; public: char const * __ptr64 __cdecl MULTISZA::Next(char const * __ptr64)const  __ptr64
?Next@MULTISZA@@QEBAPEBDPEBD@Z
; public: class BUFFER_CHAIN_ITEM * __ptr64 __cdecl BUFFER_CHAIN::NextBuffer(class BUFFER_CHAIN_ITEM * __ptr64) __ptr64
?NextBuffer@BUFFER_CHAIN@@QEAAPEAVBUFFER_CHAIN_ITEM@@PEAV2@@Z
; long __cdecl NormalizeUrl(char * __ptr64)
?NormalizeUrl@@YAJPEAD@Z
; long __cdecl NormalizeUrlW(unsigned short * __ptr64)
?NormalizeUrlW@@YAJPEAG@Z
; private: void __cdecl IPM_MESSAGE_PIPE::NotifyPipeDisconnected(long) __ptr64
?NotifyPipeDisconnected@IPM_MESSAGE_PIPE@@AEAAXJ@Z
; int __cdecl NtLargeIntegerTimeToLocalSystemTime(union _LARGE_INTEGER const * __ptr64,struct _SYSTEMTIME * __ptr64)
?NtLargeIntegerTimeToLocalSystemTime@@YAHPEBT_LARGE_INTEGER@@PEAU_SYSTEMTIME@@@Z
; int __cdecl NtLargeIntegerTimeToSystemTime(union _LARGE_INTEGER const & __ptr64,struct _SYSTEMTIME * __ptr64)
?NtLargeIntegerTimeToSystemTime@@YAHAEBT_LARGE_INTEGER@@PEAU_SYSTEMTIME@@@Z
; int __cdecl NtSystemTimeToLargeInteger(struct _SYSTEMTIME const * __ptr64,union _LARGE_INTEGER * __ptr64)
?NtSystemTimeToLargeInteger@@YAHPEBU_SYSTEMTIME@@PEAT_LARGE_INTEGER@@@Z
; public: int __cdecl CLKRHashTable::NumSubTables(void)const  __ptr64
?NumSubTables@CLKRHashTable@@QEBAHXZ
; public: static enum LK_TABLESIZE  __cdecl CLKRHashTable::NumSubTables(unsigned long & __ptr64,unsigned long & __ptr64)
?NumSubTables@CLKRHashTable@@SA?AW4LK_TABLESIZE@@AEAK0@Z
; public: int __cdecl CLKRLinearHashTable::NumSubTables(void)const  __ptr64
?NumSubTables@CLKRLinearHashTable@@QEBAHXZ
; public: static enum LK_TABLESIZE  __cdecl CLKRLinearHashTable::NumSubTables(unsigned long & __ptr64,unsigned long & __ptr64)
?NumSubTables@CLKRLinearHashTable@@SA?AW4LK_TABLESIZE@@AEAK0@Z
; public: int __cdecl CDFTCache::OffsetSeconds(void)const  __ptr64
?OffsetSeconds@CDFTCache@@QEBAHXZ
; public: int __cdecl MB::Open(unsigned long,unsigned short const * __ptr64,unsigned long) __ptr64
?Open@MB@@QEAAHKPEBGK@Z
; public: int __cdecl MB::Open(unsigned short const * __ptr64,unsigned long) __ptr64
?Open@MB@@QEAAHPEBGK@Z
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<1,1,3,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<2,1,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<3,1,1,1,1,1>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<4,1,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<5,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<6,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<7,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<8,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<9,2,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: class CSingleListEntry * __ptr64 __cdecl CLockedSingleList::Pop(void) __ptr64
?Pop@CLockedSingleList@@QEAAQEAVCSingleListEntry@@XZ
; public: class CSingleListEntry * __ptr64 __cdecl CSingleList::Pop(void) __ptr64
?Pop@CSingleList@@QEAAQEAVCSingleListEntry@@XZ
; public: void __cdecl ALLOC_CACHE_HANDLER::Print(void) __ptr64
?Print@ALLOC_CACHE_HANDLER@@QEAAXXZ
; private: unsigned short * __ptr64 __cdecl STRAU::PrivateQueryStr(int) __ptr64
?PrivateQueryStr@STRAU@@AEAAPEAGH@Z
; public: void __cdecl CLockedSingleList::Push(class CSingleListEntry * __ptr64 const) __ptr64
?Push@CLockedSingleList@@QEAAXQEAVCSingleListEntry@@@Z
; public: void __cdecl CSingleList::Push(class CSingleListEntry * __ptr64 const) __ptr64
?Push@CSingleList@@QEAAXQEAVCSingleListEntry@@@Z
; public: struct IMSAdminBaseW * __ptr64 __cdecl MB::QueryAdminBase(void)const  __ptr64
?QueryAdminBase@MB@@QEBAPEAUIMSAdminBaseW@@XZ
; public: class BUFFER * __ptr64 __cdecl STRU::QueryBuffer(void) __ptr64
?QueryBuffer@STRU@@QEAAPEAVBUFFER@@XZ
; public: unsigned int __cdecl MULTISZ::QueryCB(void)const  __ptr64
?QueryCB@MULTISZ@@QEBAIXZ
; public: unsigned int __cdecl MULTISZA::QueryCB(void)const  __ptr64
?QueryCB@MULTISZA@@QEBAIXZ
; public: unsigned int __cdecl STRA::QueryCB(void)const  __ptr64
?QueryCB@STRA@@QEBAIXZ
; public: unsigned int __cdecl STRAU::QueryCB(int) __ptr64
?QueryCB@STRAU@@QEAAIH@Z
; public: unsigned int __cdecl STRU::QueryCB(void)const  __ptr64
?QueryCB@STRU@@QEBAIXZ
; public: unsigned int __cdecl STRAU::QueryCBA(void) __ptr64
?QueryCBA@STRAU@@QEAAIXZ
; public: unsigned int __cdecl STRAU::QueryCBW(void) __ptr64
?QueryCBW@STRAU@@QEAAIXZ
; public: unsigned int __cdecl MULTISZ::QueryCCH(void)const  __ptr64
?QueryCCH@MULTISZ@@QEBAIXZ
; public: unsigned int __cdecl MULTISZA::QueryCCH(void)const  __ptr64
?QueryCCH@MULTISZA@@QEBAIXZ
; public: unsigned int __cdecl STRA::QueryCCH(void)const  __ptr64
?QueryCCH@STRA@@QEBAIXZ
; public: unsigned int __cdecl STRAU::QueryCCH(void) __ptr64
?QueryCCH@STRAU@@QEAAIXZ
; public: unsigned int __cdecl STRU::QueryCCH(void)const  __ptr64
?QueryCCH@STRU@@QEBAIXZ
; public: unsigned long __cdecl CEtwTracer::QueryEnableLevel(void) __ptr64
?QueryEnableLevel@CEtwTracer@@QEAAKXZ
; public: unsigned long __cdecl MB::QueryHandle(void)const  __ptr64
?QueryHandle@MB@@QEBAKXZ
; public: unsigned long __cdecl CHUNK_BUFFER::QueryHeapAllocCount(void) __ptr64
?QueryHeapAllocCount@CHUNK_BUFFER@@QEAAKXZ
; public: virtual long __cdecl MB_BASE_NOTIFICATION_SINK::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@MB_BASE_NOTIFICATION_SINK@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: void * __ptr64 __cdecl BUFFER::QueryPtr(void)const  __ptr64
?QueryPtr@BUFFER@@QEBAPEAXXZ
; public: unsigned int __cdecl BUFFER::QuerySize(void)const  __ptr64
?QuerySize@BUFFER@@QEBAIXZ
; public: unsigned int __cdecl STRA::QuerySize(void)const  __ptr64
?QuerySize@STRA@@QEBAIXZ
; public: void __cdecl ALLOC_CACHE_HANDLER::QueryStats(struct _ALLOC_CACHE_STATISTICS * __ptr64) __ptr64
?QueryStats@ALLOC_CACHE_HANDLER@@QEAAXPEAU_ALLOC_CACHE_STATISTICS@@@Z
; public: unsigned short * __ptr64 __cdecl MULTISZ::QueryStr(void)const  __ptr64
?QueryStr@MULTISZ@@QEBAPEAGXZ
; public: char * __ptr64 __cdecl MULTISZA::QueryStr(void)const  __ptr64
?QueryStr@MULTISZA@@QEBAPEADXZ
; public: char * __ptr64 __cdecl STRA::QueryStr(void) __ptr64
?QueryStr@STRA@@QEAAPEADXZ
; public: char const * __ptr64 __cdecl STRA::QueryStr(void)const  __ptr64
?QueryStr@STRA@@QEBAPEBDXZ
; public: unsigned short * __ptr64 __cdecl STRAU::QueryStr(int) __ptr64
?QueryStr@STRAU@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl STRU::QueryStr(void) __ptr64
?QueryStr@STRU@@QEAAPEAGXZ
; public: unsigned short const * __ptr64 __cdecl STRU::QueryStr(void)const  __ptr64
?QueryStr@STRU@@QEBAPEBGXZ
; public: unsigned short * __ptr64 __cdecl MULTISZ::QueryStrA(void)const  __ptr64
?QueryStrA@MULTISZ@@QEBAPEAGXZ
; public: char * __ptr64 __cdecl STRAU::QueryStrA(void) __ptr64
?QueryStrA@STRAU@@QEAAPEADXZ
; public: unsigned short * __ptr64 __cdecl STRAU::QueryStrW(void) __ptr64
?QueryStrW@STRAU@@QEAAPEAGXZ
; public: unsigned long __cdecl MULTISZ::QueryStringCount(void)const  __ptr64
?QueryStringCount@MULTISZ@@QEBAKXZ
; public: unsigned long __cdecl MULTISZA::QueryStringCount(void)const  __ptr64
?QueryStringCount@MULTISZA@@QEBAKXZ
; public: unsigned __int64 __cdecl CEtwTracer::QueryTraceHandle(void) __ptr64
?QueryTraceHandle@CEtwTracer@@QEAA_KXZ
; public: unsigned long __cdecl BUFFER_CHAIN_ITEM::QueryUsed(void)const  __ptr64
?QueryUsed@BUFFER_CHAIN_ITEM@@QEBAKXZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<1,1,3,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<2,1,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<3,1,1,1,1,1>::QueueType(void)
?QueueType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<4,1,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<5,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<6,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<7,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<8,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<9,2,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: bool __cdecl CDataCache<class CDateTime>::Read(class CDateTime & __ptr64)const  __ptr64
?Read@?$CDataCache@VCDateTime@@@@QEBA_NAEAVCDateTime@@@Z
ReadDwordParameterValueFromAnyService
; public: void __cdecl CCritSec::ReadLock(void) __ptr64
?ReadLock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ReadLock(void) __ptr64
?ReadLock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ReadLock(void)const  __ptr64
?ReadLock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ReadLock(void)const  __ptr64
?ReadLock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ReadLock(void) __ptr64
?ReadLock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ReadLock(void) __ptr64
?ReadLock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ReadLock(void) __ptr64
?ReadLock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ReadLock(void) __ptr64
?ReadLock@CSpinLock@@QEAAXXZ
; private: long __cdecl IPM_MESSAGE_PIPE::ReadMessage(unsigned long) __ptr64
?ReadMessage@IPM_MESSAGE_PIPE@@AEAAJK@Z
; public: bool __cdecl CCritSec::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CSpinLock::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CSpinLock@@QEAA_NXZ
; public: void __cdecl CCritSec::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CCritSec@@QEAAX_N@Z
; public: void __cdecl CFakeLock::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CFakeLock@@QEAAX_N@Z
; public: void __cdecl CReaderWriterLock3::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CReaderWriterLock3@@QEAAX_N@Z
; public: void __cdecl CSpinLock::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CSpinLock@@QEAAX_N@Z
ReadRegDword
ReadStringParameterValueFromAnyService
; public: void __cdecl CCritSec::ReadUnlock(void) __ptr64
?ReadUnlock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ReadUnlock(void) __ptr64
?ReadUnlock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ReadUnlock(void)const  __ptr64
?ReadUnlock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ReadUnlock(void)const  __ptr64
?ReadUnlock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ReadUnlock(void) __ptr64
?ReadUnlock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ReadUnlock(void) __ptr64
?ReadUnlock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ReadUnlock(void) __ptr64
?ReadUnlock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ReadUnlock(void) __ptr64
?ReadUnlock@CSpinLock@@QEAAXXZ
; private: int __cdecl BUFFER::ReallocStorage(unsigned int) __ptr64
?ReallocStorage@BUFFER@@AEAAHI@Z
; public: void __cdecl MULTISZ::RecalcLen(void) __ptr64
?RecalcLen@MULTISZ@@QEAAXXZ
; public: void __cdecl MULTISZA::RecalcLen(void) __ptr64
?RecalcLen@MULTISZA@@QEAAXXZ
; public: void const * __ptr64 __cdecl CLKRHashTable_Iterator::Record(void)const  __ptr64
?Record@CLKRHashTable_Iterator@@QEBAPEBXXZ
; public: void const * __ptr64 __cdecl CLKRLinearHashTable_Iterator::Record(void)const  __ptr64
?Record@CLKRLinearHashTable_Iterator@@QEBAPEBXXZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<1,1,3,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<2,1,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<3,1,1,1,1,1>::Recursion(void)
?Recursion@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<4,1,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<5,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<6,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<7,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<8,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<9,2,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: unsigned long __cdecl CEtwTracer::Register(struct _GUID const * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?Register@CEtwTracer@@QEAAKPEBU_GUID@@PEAG1@Z
; public: virtual unsigned long __cdecl MB_BASE_NOTIFICATION_SINK::Release(void) __ptr64
?Release@MB_BASE_NOTIFICATION_SINK@@UEAAKXZ
; public: void __cdecl CSharelock::ReleaseExclusiveLock(void) __ptr64
?ReleaseExclusiveLock@CSharelock@@QEAAXXZ
; public: void __cdecl CSharelock::ReleaseShareLock(void) __ptr64
?ReleaseShareLock@CSharelock@@QEAAXXZ
; public: static void __cdecl CDoubleList::RemoveEntry(class CListEntry * __ptr64 const)
?RemoveEntry@CDoubleList@@SAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::RemoveEntry(class CListEntry * __ptr64 const) __ptr64
?RemoveEntry@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::RemoveHead(void) __ptr64
?RemoveHead@CDoubleList@@QEAAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::RemoveHead(void) __ptr64
?RemoveHead@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: static void __cdecl ALLOC_CACHE_HANDLER::RemoveItem(class ALLOC_CACHE_HANDLER * __ptr64)
?RemoveItem@ALLOC_CACHE_HANDLER@@SAXPEAV1@@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::RemoveTail(void) __ptr64
?RemoveTail@CDoubleList@@QEAAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::RemoveTail(void) __ptr64
?RemoveTail@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
RemoveWorkItem
; public: void __cdecl MULTISZ::Reset(void) __ptr64
?Reset@MULTISZ@@QEAAXXZ
; public: void __cdecl MULTISZA::Reset(void) __ptr64
?Reset@MULTISZA@@QEAAXXZ
; public: void __cdecl STRA::Reset(void) __ptr64
?Reset@STRA@@QEAAXXZ
; public: void __cdecl STRAU::Reset(void) __ptr64
?Reset@STRAU@@QEAAXXZ
; public: void __cdecl STRU::Reset(void) __ptr64
?Reset@STRU@@QEAAXXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::ResetLookasideCleanupInterval(void)
?ResetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SAHXZ
; public: int __cdecl BUFFER::Resize(unsigned int) __ptr64
?Resize@BUFFER@@QEAAHI@Z
; public: int __cdecl BUFFER::Resize(unsigned int,unsigned int) __ptr64
?Resize@BUFFER@@QEAAHII@Z
; public: long __cdecl STRA::Resize(unsigned long) __ptr64
?Resize@STRA@@QEAAJK@Z
; public: long __cdecl STRU::Resize(unsigned long) __ptr64
?Resize@STRU@@QEAAJK@Z
; public: int __cdecl STRAU::ResizeW(unsigned long) __ptr64
?ResizeW@STRAU@@QEAAHK@Z
SAFEIsSpace
SAFEIsXDigit
; public: int __cdecl STRAU::SafeCopy(char const * __ptr64) __ptr64
?SafeCopy@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::SafeCopy(unsigned short const * __ptr64) __ptr64
?SafeCopy@STRAU@@QEAAHPEBG@Z
; public: int __cdecl MB::Save(void) __ptr64
?Save@MB@@QEAAHXZ
ScheduleAdjustTime
ScheduleWorkItem
SchedulerInitialize
SchedulerTerminate
; public: unsigned short __cdecl CDFTCache::Seconds(void)const  __ptr64
?Seconds@CDFTCache@@QEBAGXZ
; public: void __cdecl W3_TRACE_LOG::SetBlocking(int) __ptr64
?SetBlocking@W3_TRACE_LOG@@QEAAXH@Z
; public: void __cdecl CLKRHashTable::SetBucketLockSpinCount(unsigned short) __ptr64
?SetBucketLockSpinCount@CLKRHashTable@@QEAAXG@Z
; public: void __cdecl CLKRLinearHashTable::SetBucketLockSpinCount(unsigned short) __ptr64
?SetBucketLockSpinCount@CLKRLinearHashTable@@QEAAXG@Z
; public: void __cdecl W3_TRACE_LOG::SetBuffering(int) __ptr64
?SetBuffering@W3_TRACE_LOG@@QEAAXH@Z
; public: int __cdecl MB::SetData(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,void * __ptr64,unsigned long,unsigned long) __ptr64
?SetData@MB@@QEAAHPEBGKKKPEAXKK@Z
; public: static void __cdecl CCritSec::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CCritSec@@SAXN@Z
; public: static void __cdecl CFakeLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CFakeLock@@SAXN@Z
; public: static void __cdecl CReaderWriterLock2::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SAXN@Z
; public: static void __cdecl CReaderWriterLock3::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SAXN@Z
; public: static void __cdecl CReaderWriterLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SAXN@Z
; public: static void __cdecl CRtlResource::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CRtlResource@@SAXN@Z
; public: static void __cdecl CShareLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CShareLock@@SAXN@Z
; public: static void __cdecl CSmallSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SAXN@Z
; public: static void __cdecl CSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSpinLock@@SAXN@Z
; public: static void __cdecl CCritSec::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CCritSec@@SAXG@Z
; public: static void __cdecl CFakeLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CFakeLock@@SAXG@Z
; public: static void __cdecl CReaderWriterLock2::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock2@@SAXG@Z
; public: static void __cdecl CReaderWriterLock3::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock3@@SAXG@Z
; public: static void __cdecl CReaderWriterLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock@@SAXG@Z
; public: static void __cdecl CRtlResource::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CRtlResource@@SAXG@Z
; public: static void __cdecl CShareLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CShareLock@@SAXG@Z
; public: static void __cdecl CSmallSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSmallSpinLock@@SAXG@Z
; public: static void __cdecl CSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSpinLock@@SAXG@Z
; public: int __cdecl MB::SetDword(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
?SetDword@MB@@QEAAHPEBGKKKK@Z
SetExplicitAccessSettings
; public: int __cdecl STRA::SetLen(unsigned long) __ptr64
?SetLen@STRA@@QEAAHK@Z
; public: int __cdecl STRAU::SetLen(unsigned long) __ptr64
?SetLen@STRAU@@QEAAHK@Z
; public: int __cdecl STRU::SetLen(unsigned long) __ptr64
?SetLen@STRU@@QEAAHK@Z
; public: void __cdecl ASCLOG_DATETIME_CACHE::SetLocalTime(struct _SYSTEMTIME * __ptr64) __ptr64
?SetLocalTime@ASCLOG_DATETIME_CACHE@@QEAAXPEAU_SYSTEMTIME@@@Z
; public: static int __cdecl ALLOC_CACHE_HANDLER::SetLookasideCleanupInterval(void)
?SetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SAHXZ
; public: bool __cdecl CCritSec::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CCritSec@@QEAA_NG@Z
; public: static unsigned long __cdecl CCritSec::SetSpinCount(struct _RTL_CRITICAL_SECTION * __ptr64,unsigned long)
?SetSpinCount@CCritSec@@SAKPEAU_RTL_CRITICAL_SECTION@@K@Z
; public: bool __cdecl CFakeLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CFakeLock@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock2::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock2@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock3::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock3@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock@@QEAA_NG@Z
; public: bool __cdecl CRtlResource::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CRtlResource@@QEAA_NG@Z
; public: bool __cdecl CShareLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CShareLock@@QEAA_NG@Z
; public: bool __cdecl CSmallSpinLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CSmallSpinLock@@QEAA_NG@Z
; public: bool __cdecl CSpinLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CSpinLock@@QEAA_NG@Z
; public: int __cdecl MB::SetString(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned short const * __ptr64,unsigned long) __ptr64
?SetString@MB@@QEAAHPEBGKK0K@Z
SetStringParameterValueInAnyService
; public: void __cdecl EXTLOG_DATETIME_CACHE::SetSystemTime(struct _SYSTEMTIME * __ptr64) __ptr64
?SetSystemTime@EXTLOG_DATETIME_CACHE@@QEAAXPEAU_SYSTEMTIME@@@Z
; public: void __cdecl CLKRHashTable::SetTableLockSpinCount(unsigned short) __ptr64
?SetTableLockSpinCount@CLKRHashTable@@QEAAXG@Z
; public: void __cdecl CLKRLinearHashTable::SetTableLockSpinCount(unsigned short) __ptr64
?SetTableLockSpinCount@CLKRLinearHashTable@@QEAAXG@Z
; public: int __cdecl CDateTime::SetTime(struct _FILETIME const & __ptr64) __ptr64
?SetTime@CDateTime@@QEAAHAEBU_FILETIME@@@Z
; public: int __cdecl CDateTime::SetTime(struct _SYSTEMTIME const & __ptr64) __ptr64
?SetTime@CDateTime@@QEAAHAEBU_SYSTEMTIME@@@Z
; public: void __cdecl BUFFER_CHAIN_ITEM::SetUsed(unsigned long) __ptr64
?SetUsed@BUFFER_CHAIN_ITEM@@QEAAXK@Z
; public: void __cdecl BUFFER::SetValid(int) __ptr64
?SetValid@BUFFER@@QEAAXH@Z
; public: virtual long __cdecl MB_BASE_NOTIFICATION_SINK::ShutdownNotify(void) __ptr64
?ShutdownNotify@MB_BASE_NOTIFICATION_SINK@@UEAAJXZ
; public: virtual long __cdecl MB_BASE_NOTIFICATION_SINK::SinkNotify(unsigned long,struct _MD_CHANGE_OBJECT_W * __ptr64 const) __ptr64
?SinkNotify@MB_BASE_NOTIFICATION_SINK@@UEAAJKQEAU_MD_CHANGE_OBJECT_W@@@Z
; public: unsigned long __cdecl CLKRHashTable::Size(void)const  __ptr64
?Size@CLKRHashTable@@QEBAKXZ
; public: unsigned long __cdecl CLKRLinearHashTable::Size(void)const  __ptr64
?Size@CLKRLinearHashTable@@QEBAKXZ
SkipTo
SkipWhite
; private: unsigned char __cdecl CSharelock::SleepWaitingForLock(int) __ptr64
?SleepWaitingForLock@CSharelock@@AEAAEH@Z
StartIISAdminMonitor
; public: long __cdecl MB_BASE_NOTIFICATION_SINK::StartListening(struct IUnknown * __ptr64) __ptr64
?StartListening@MB_BASE_NOTIFICATION_SINK@@QEAAJPEAUIUnknown@@@Z
StopIISAdminMonitor
; public: long __cdecl MB_BASE_NOTIFICATION_SINK::StopListening(struct IUnknown * __ptr64) __ptr64
?StopListening@MB_BASE_NOTIFICATION_SINK@@QEAAJPEAUIUnknown@@@Z
; int __cdecl StringTimeToFileTime(char const * __ptr64,union _LARGE_INTEGER * __ptr64)
?StringTimeToFileTime@@YAHPEBDPEAT_LARGE_INTEGER@@@Z
; public: int __cdecl EVENT_LOG::Success(void)const  __ptr64
?Success@EVENT_LOG@@QEBAHXZ
; public: void __cdecl STRA::SyncWithBuffer(void) __ptr64
?SyncWithBuffer@STRA@@QEAAXXZ
; public: void __cdecl STRU::SyncWithBuffer(void) __ptr64
?SyncWithBuffer@STRU@@QEAAXXZ
; public: virtual long __cdecl MB_BASE_NOTIFICATION_SINK::SynchronizedShutdownNotify(void) __ptr64
?SynchronizedShutdownNotify@MB_BASE_NOTIFICATION_SINK@@UEAAJXZ
SystemTimeToGMT
; int __cdecl SystemTimeToGMTEx(struct _SYSTEMTIME const & __ptr64,char * __ptr64,unsigned long,unsigned long)
?SystemTimeToGMTEx@@YAHAEBU_SYSTEMTIME@@PEADKK@Z
; private: static void __cdecl W3_TRACE_LOG_FACTORY::TimerCallback(void * __ptr64,unsigned char)
?TimerCallback@W3_TRACE_LOG_FACTORY@@CAXPEAXE@Z
; public: long __cdecl W3_TRACE_LOG::Trace(unsigned short const * __ptr64,...) __ptr64
?Trace@W3_TRACE_LOG@@QEAAJPEBGZZ
; public: int __cdecl CEtwTracer::TracePerUrlEnabled(void) __ptr64
?TracePerUrlEnabled@CEtwTracer@@QEAAHXZ
; public: bool __cdecl CReaderWriterLock3::TryConvertSharedToExclusive(void) __ptr64
?TryConvertSharedToExclusive@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CCritSec::TryReadLock(void) __ptr64
?TryReadLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::TryReadLock(void) __ptr64
?TryReadLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock2::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock2@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock@@QEAA_NXZ
; public: bool __cdecl CRtlResource::TryReadLock(void) __ptr64
?TryReadLock@CRtlResource@@QEAA_NXZ
; public: bool __cdecl CShareLock::TryReadLock(void) __ptr64
?TryReadLock@CShareLock@@QEAA_NXZ
; public: bool __cdecl CSmallSpinLock::TryReadLock(void) __ptr64
?TryReadLock@CSmallSpinLock@@QEAA_NXZ
; public: bool __cdecl CSpinLock::TryReadLock(void) __ptr64
?TryReadLock@CSpinLock@@QEAA_NXZ
; public: bool __cdecl CCritSec::TryWriteLock(void) __ptr64
?TryWriteLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::TryWriteLock(void) __ptr64
?TryWriteLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock2::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock2@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock@@QEAA_NXZ
; public: bool __cdecl CRtlResource::TryWriteLock(void) __ptr64
?TryWriteLock@CRtlResource@@QEAA_NXZ
; public: bool __cdecl CShareLock::TryWriteLock(void) __ptr64
?TryWriteLock@CShareLock@@QEAA_NXZ
; public: bool __cdecl CSmallSpinLock::TryWriteLock(void) __ptr64
?TryWriteLock@CSmallSpinLock@@QEAA_NXZ
; public: bool __cdecl CSpinLock::TryWriteLock(void) __ptr64
?TryWriteLock@CSpinLock@@QEAA_NXZ
; long __cdecl UlCleanAndCopyUrl(unsigned char * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64 * __ptr64)
?UlCleanAndCopyUrl@@YAJPEAEKPEAKPEAGPEAPEAG@Z
; public: unsigned long __cdecl CEtwTracer::UnRegister(void) __ptr64
?UnRegister@CEtwTracer@@QEAAKXZ
; public: void __cdecl W3_TRACE_LOG::Undent(void) __ptr64
?Undent@W3_TRACE_LOG@@QEAAXXZ
; public: long __cdecl STRA::Unescape(void) __ptr64
?Unescape@STRA@@QEAAJXZ
; public: long __cdecl STRU::Unescape(void) __ptr64
?Unescape@STRU@@QEAAJXZ
; private: void __cdecl ALLOC_CACHE_HANDLER::Unlock(void) __ptr64
?Unlock@ALLOC_CACHE_HANDLER@@AEAAXXZ
; public: void __cdecl CLockedDoubleList::Unlock(void) __ptr64
?Unlock@CLockedDoubleList@@QEAAXXZ
; public: void __cdecl CLockedSingleList::Unlock(void) __ptr64
?Unlock@CLockedSingleList@@QEAAXXZ
; public: void __cdecl TS_RESOURCE::Unlock(void) __ptr64
?Unlock@TS_RESOURCE@@QEAAXXZ
; public: unsigned char __cdecl CSharelock::UpdateMaxSpins(int) __ptr64
?UpdateMaxSpins@CSharelock@@QEAAEH@Z
; public: unsigned char __cdecl CSharelock::UpdateMaxUsers(int) __ptr64
?UpdateMaxUsers@CSharelock@@QEAAEH@Z
; public: bool __cdecl CLKRHashTable::ValidSignature(void)const  __ptr64
?ValidSignature@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::ValidSignature(void)const  __ptr64
?ValidSignature@CLKRLinearHashTable@@QEBA_NXZ
; private: void __cdecl BUFFER::VerifyState(void)const  __ptr64
?VerifyState@BUFFER@@AEBAXXZ
WCopyToA
; private: unsigned char __cdecl CSharelock::WaitForExclusiveLock(int) __ptr64
?WaitForExclusiveLock@CSharelock@@AEAAEH@Z
; private: unsigned char __cdecl CSharelock::WaitForShareLock(int) __ptr64
?WaitForShareLock@CSharelock@@AEAAEH@Z
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<1,1,3,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<2,1,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<3,1,1,1,1,1>::WaitType(void)
?WaitType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<4,1,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<5,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<6,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<7,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<8,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<9,2,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; private: void __cdecl CSharelock::WakeAllSleepers(void) __ptr64
?WakeAllSleepers@CSharelock@@AEAAXXZ
; public: bool __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::Write(struct DATETIME_FORMAT_ENTRY const & __ptr64) __ptr64
?Write@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAA_NAEBUDATETIME_FORMAT_ENTRY@@@Z
; public: bool __cdecl CDataCache<class CDateTime>::Write(class CDateTime const & __ptr64) __ptr64
?Write@?$CDataCache@VCDateTime@@@@QEAA_NAEBVCDateTime@@@Z
; public: void __cdecl CCritSec::WriteLock(void) __ptr64
?WriteLock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::WriteLock(void) __ptr64
?WriteLock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::WriteLock(void) __ptr64
?WriteLock@CLKRHashTable@@QEAAXXZ
; public: void __cdecl CLKRLinearHashTable::WriteLock(void) __ptr64
?WriteLock@CLKRLinearHashTable@@QEAAXXZ
; public: void __cdecl CReaderWriterLock2::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::WriteLock(void) __ptr64
?WriteLock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::WriteLock(void) __ptr64
?WriteLock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::WriteLock(void) __ptr64
?WriteLock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::WriteLock(void) __ptr64
?WriteLock@CSpinLock@@QEAAXXZ
; public: long __cdecl IPM_MESSAGE_PIPE::WriteMessage(enum IPM_OPCODE,unsigned long,void * __ptr64) __ptr64
?WriteMessage@IPM_MESSAGE_PIPE@@QEAAJW4IPM_OPCODE@@KPEAX@Z
; public: void __cdecl CCritSec::WriteUnlock(void) __ptr64
?WriteUnlock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::WriteUnlock(void) __ptr64
?WriteUnlock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::WriteUnlock(void)const  __ptr64
?WriteUnlock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::WriteUnlock(void)const  __ptr64
?WriteUnlock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::WriteUnlock(void) __ptr64
?WriteUnlock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::WriteUnlock(void) __ptr64
?WriteUnlock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::WriteUnlock(void) __ptr64
?WriteUnlock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::WriteUnlock(void) __ptr64
?WriteUnlock@CSpinLock@@QEAAXXZ
; protected: void __cdecl CLKRLinearHashTable_Iterator::_AddRef(int)const  __ptr64
?_AddRef@CLKRLinearHashTable_Iterator@@IEBAXH@Z
; private: void __cdecl CLKRLinearHashTable::_AddRefRecord(void const * __ptr64,int)const  __ptr64
?_AddRefRecord@CLKRLinearHashTable@@AEBAXPEBXH@Z
; private: static class CNodeClump * __ptr64 __cdecl CLKRLinearHashTable::_AllocateNodeClump(void)
?_AllocateNodeClump@CLKRLinearHashTable@@CAQEAVCNodeClump@@XZ
; private: class CSegment * __ptr64 __cdecl CLKRLinearHashTable::_AllocateSegment(void)const  __ptr64
?_AllocateSegment@CLKRLinearHashTable@@AEBAQEAVCSegment@@XZ
; private: static class CDirEntry * __ptr64 __cdecl CLKRLinearHashTable::_AllocateSegmentDirectory(unsigned __int64)
?_AllocateSegmentDirectory@CLKRLinearHashTable@@CAQEAVCDirEntry@@_K@Z
; private: static class CLKRLinearHashTable * __ptr64 __cdecl CLKRHashTable::_AllocateSubTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,class CLKRHashTable * __ptr64,bool)
?_AllocateSubTable@CLKRHashTable@@CAQEAVCLKRLinearHashTable@@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKPEAV1@_N@Z
; private: static class CLKRLinearHashTable * __ptr64 * __ptr64 __cdecl CLKRHashTable::_AllocateSubTableArray(unsigned __int64)
?_AllocateSubTableArray@CLKRHashTable@@CAQEAPEAVCLKRLinearHashTable@@_K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE,enum LK_PREDICATE & __ptr64) __ptr64
?_Apply@CLKRLinearHashTable@@AEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@AEAW4LK_PREDICATE@@@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE,enum LK_PREDICATE & __ptr64) __ptr64
?_ApplyIf@CLKRLinearHashTable@@AEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@AEAW42@@Z
; private: class CBucket * __ptr64 __cdecl CLKRLinearHashTable::_Bucket(unsigned long)const  __ptr64
?_Bucket@CLKRLinearHashTable@@AEBAPEAVCBucket@@K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_BucketAddress(unsigned long)const  __ptr64
?_BucketAddress@CLKRLinearHashTable@@AEBAKK@Z
; private: unsigned long __cdecl CLKRHashTable::_CalcKeyHash(unsigned __int64)const  __ptr64
?_CalcKeyHash@CLKRHashTable@@AEBAK_K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_CalcKeyHash(unsigned __int64)const  __ptr64
?_CalcKeyHash@CLKRLinearHashTable@@AEBAK_K@Z
; private: void __cdecl CLKRLinearHashTable::_Clear(bool) __ptr64
?_Clear@CLKRLinearHashTable@@AEAAX_N@Z
; private: bool __cdecl CReaderWriterLock2::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock2@@AEAA_NJJ@Z
; private: bool __cdecl CReaderWriterLock3::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock3@@AEAA_NJJ@Z
; private: bool __cdecl CReaderWriterLock::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock@@AEAA_NJJ@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Contract(void) __ptr64
?_Contract@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@XZ
; private: static long __cdecl CReaderWriterLock3::_CurrentThreadId(void)
?_CurrentThreadId@CReaderWriterLock3@@CAJXZ
; private: static long __cdecl CSmallSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSmallSpinLock@@CAJXZ
; private: static long __cdecl CSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSpinLock@@CAJXZ
; private: unsigned long __cdecl CLKRLinearHashTable::_DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_PREDICATE & __ptr64) __ptr64
?_DeleteIf@CLKRLinearHashTable@@AEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1AEAW42@@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_DeleteKey(unsigned __int64,unsigned long) __ptr64
?_DeleteKey@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@_KK@Z
; private: bool __cdecl CLKRLinearHashTable::_DeleteNode(class CBucket * __ptr64,class CNodeClump * __ptr64 & __ptr64,class CNodeClump * __ptr64 & __ptr64,int & __ptr64) __ptr64
?_DeleteNode@CLKRLinearHashTable@@AEAA_NPEAVCBucket@@AEAPEAVCNodeClump@@1AEAH@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_DeleteRecord(void const * __ptr64,unsigned long) __ptr64
?_DeleteRecord@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEBXK@Z
; private: bool __cdecl CLKRLinearHashTable::_EqualKeys(unsigned __int64,unsigned __int64)const  __ptr64
?_EqualKeys@CLKRLinearHashTable@@AEBA_N_K0@Z
; private: bool __cdecl CLKRLinearHashTable::_Erase(class CLKRLinearHashTable_Iterator & __ptr64,unsigned long) __ptr64
?_Erase@CLKRLinearHashTable@@AEAA_NAEAVCLKRLinearHashTable_Iterator@@K@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Expand(void) __ptr64
?_Expand@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@XZ
; private: unsigned __int64 const  __cdecl CLKRHashTable::_ExtractKey(void const * __ptr64)const  __ptr64
?_ExtractKey@CLKRHashTable@@AEBA?B_KPEBX@Z
; private: unsigned __int64 const  __cdecl CLKRLinearHashTable::_ExtractKey(void const * __ptr64)const  __ptr64
?_ExtractKey@CLKRLinearHashTable@@AEBA?B_KPEBX@Z
; private: class CBucket * __ptr64 __cdecl CLKRLinearHashTable::_FindBucket(unsigned long,bool)const  __ptr64
?_FindBucket@CLKRLinearHashTable@@AEBAPEAVCBucket@@K_N@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_FindKey(unsigned __int64,unsigned long,void const * __ptr64 * __ptr64,class CLKRLinearHashTable_Iterator * __ptr64)const  __ptr64
?_FindKey@CLKRLinearHashTable@@AEBA?AW4LK_RETCODE@@_KKPEAPEBXPEAVCLKRLinearHashTable_Iterator@@@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_FindRecord(void const * __ptr64,unsigned long)const  __ptr64
?_FindRecord@CLKRLinearHashTable@@AEBA?AW4LK_RETCODE@@PEBXK@Z
; private: static bool __cdecl CLKRLinearHashTable::_FreeNodeClump(class CNodeClump * __ptr64)
?_FreeNodeClump@CLKRLinearHashTable@@CA_NPEAVCNodeClump@@@Z
; private: bool __cdecl CLKRLinearHashTable::_FreeSegment(class CSegment * __ptr64)const  __ptr64
?_FreeSegment@CLKRLinearHashTable@@AEBA_NPEAVCSegment@@@Z
; private: bool __cdecl CLKRLinearHashTable::_FreeSegmentDirectory(void) __ptr64
?_FreeSegmentDirectory@CLKRLinearHashTable@@AEAA_NXZ
; private: static bool __cdecl CLKRHashTable::_FreeSubTable(class CLKRLinearHashTable * __ptr64)
?_FreeSubTable@CLKRHashTable@@CA_NPEAVCLKRLinearHashTable@@@Z
; private: static bool __cdecl CLKRHashTable::_FreeSubTableArray(class CLKRLinearHashTable * __ptr64 * __ptr64)
?_FreeSubTableArray@CLKRHashTable@@CA_NPEAPEAVCLKRLinearHashTable@@@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_H0(unsigned long)const  __ptr64
?_H0@CLKRLinearHashTable@@AEBAKK@Z
; private: static unsigned long __cdecl CLKRLinearHashTable::_H0(unsigned long,unsigned long)
?_H0@CLKRLinearHashTable@@CAKKK@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_H1(unsigned long)const  __ptr64
?_H1@CLKRLinearHashTable@@AEBAKK@Z
; private: static unsigned long __cdecl CLKRLinearHashTable::_H1(unsigned long,unsigned long)
?_H1@CLKRLinearHashTable@@CAKKK@Z
; protected: bool __cdecl CLKRHashTable_Iterator::_Increment(bool) __ptr64
?_Increment@CLKRHashTable_Iterator@@IEAA_N_N@Z
; protected: bool __cdecl CLKRLinearHashTable_Iterator::_Increment(bool) __ptr64
?_Increment@CLKRLinearHashTable_Iterator@@IEAA_N_N@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Initialize(unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),char const * __ptr64,double,unsigned long) __ptr64
?_Initialize@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@P6A?B_KPEBX@ZP6AK_K@ZP6A_N22@ZP6AX0H@ZPEBDNK@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_InsertRecord(void const * __ptr64,unsigned long,bool,class CLKRLinearHashTable_Iterator * __ptr64) __ptr64
?_InsertRecord@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEBXK_NPEAVCLKRLinearHashTable_Iterator@@@Z
; private: void __cdecl CLKRHashTable::_InsertThisIntoGlobalList(void) __ptr64
?_InsertThisIntoGlobalList@CLKRHashTable@@AEAAXXZ
; private: void __cdecl CLKRLinearHashTable::_InsertThisIntoGlobalList(void) __ptr64
?_InsertThisIntoGlobalList@CLKRLinearHashTable@@AEAAXXZ
; private: bool __cdecl CSpinLock::_IsLocked(void)const  __ptr64
?_IsLocked@CSpinLock@@AEBA_NXZ
; private: int __cdecl CLKRLinearHashTable::_IsNodeCompact(class CBucket * __ptr64 const)const  __ptr64
?_IsNodeCompact@CLKRLinearHashTable@@AEBAHQEAVCBucket@@@Z
; private: bool __cdecl CLKRHashTable::_IsValidIterator(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
?_IsValidIterator@CLKRHashTable@@AEBA_NAEBVCLKRHashTable_Iterator@@@Z
; private: bool __cdecl CLKRLinearHashTable::_IsValidIterator(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
?_IsValidIterator@CLKRLinearHashTable@@AEBA_NAEBVCLKRLinearHashTable_Iterator@@@Z
; private: void __cdecl CSpinLock::_Lock(void) __ptr64
?_Lock@CSpinLock@@AEAAXXZ
; private: void __cdecl CReaderWriterLock2::_LockSpin(bool) __ptr64
?_LockSpin@CReaderWriterLock2@@AEAAX_N@Z
; private: void __cdecl CReaderWriterLock3::_LockSpin(enum CReaderWriterLock3::SPIN_TYPE) __ptr64
?_LockSpin@CReaderWriterLock3@@AEAAXW4SPIN_TYPE@1@@Z
; private: void __cdecl CReaderWriterLock::_LockSpin(bool) __ptr64
?_LockSpin@CReaderWriterLock@@AEAAX_N@Z
; private: void __cdecl CSmallSpinLock::_LockSpin(void) __ptr64
?_LockSpin@CSmallSpinLock@@AEAAXXZ
; private: void __cdecl CSpinLock::_LockSpin(void) __ptr64
?_LockSpin@CSpinLock@@AEAAXXZ
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_MergeRecordSets(class CBucket * __ptr64,class CNodeClump * __ptr64,class CNodeClump * __ptr64) __ptr64
?_MergeRecordSets@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCBucket@@PEAVCNodeClump@@1@Z
; private: static enum LK_PREDICATE  __cdecl CLKRLinearHashTable::_PredTrue(void const * __ptr64,void * __ptr64)
?_PredTrue@CLKRLinearHashTable@@CA?AW4LK_PREDICATE@@PEBXPEAX@Z
; private: void __cdecl CReaderWriterLock2::_ReadLockSpin(void) __ptr64
?_ReadLockSpin@CReaderWriterLock2@@AEAAXXZ
; private: void __cdecl CReaderWriterLock3::_ReadLockSpin(enum CReaderWriterLock3::SPIN_TYPE) __ptr64
?_ReadLockSpin@CReaderWriterLock3@@AEAAXW4SPIN_TYPE@1@@Z
; private: void __cdecl CReaderWriterLock::_ReadLockSpin(void) __ptr64
?_ReadLockSpin@CReaderWriterLock@@AEAAXXZ
; protected: static void __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@KAXXZ
; protected: static void __cdecl CDataCache<class CDateTime>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@VCDateTime@@@@KAXXZ
; private: bool __cdecl CLKRLinearHashTable::_ReadOrWriteLock(void)const  __ptr64
?_ReadOrWriteLock@CLKRLinearHashTable@@AEBA_NXZ
; private: void __cdecl CLKRLinearHashTable::_ReadOrWriteUnlock(bool)const  __ptr64
?_ReadOrWriteUnlock@CLKRLinearHashTable@@AEBAX_N@Z
; protected: long __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadSequence(void)const  __ptr64
?_ReadSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IEBAJXZ
; protected: long __cdecl CDataCache<class CDateTime>::_ReadSequence(void)const  __ptr64
?_ReadSequence@?$CDataCache@VCDateTime@@@@IEBAJXZ
; private: void __cdecl CLKRHashTable::_RemoveThisFromGlobalList(void) __ptr64
?_RemoveThisFromGlobalList@CLKRHashTable@@AEAAXXZ
; private: void __cdecl CLKRLinearHashTable::_RemoveThisFromGlobalList(void) __ptr64
?_RemoveThisFromGlobalList@CLKRLinearHashTable@@AEAAXXZ
; private: unsigned long __cdecl CLKRLinearHashTable::_SegIndex(unsigned long)const  __ptr64
?_SegIndex@CLKRLinearHashTable@@AEBAKK@Z
; private: class CSegment * __ptr64 & __ptr64 __cdecl CLKRLinearHashTable::_Segment(unsigned long)const  __ptr64
?_Segment@CLKRLinearHashTable@@AEBAAEAPEAVCSegment@@K@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_SetSegVars(enum LK_TABLESIZE,unsigned long) __ptr64
?_SetSegVars@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@W4LK_TABLESIZE@@K@Z
; protected: long __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_SetSequence(long) __ptr64
?_SetSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IEAAJJ@Z
; protected: long __cdecl CDataCache<class CDateTime>::_SetSequence(long) __ptr64
?_SetSequence@?$CDataCache@VCDateTime@@@@IEAAJJ@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_SplitRecordSet(class CNodeClump * __ptr64,class CNodeClump * __ptr64,unsigned long,unsigned long,unsigned long,class CNodeClump * __ptr64) __ptr64
?_SplitRecordSet@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCNodeClump@@0KKK0@Z
; private: class CLKRLinearHashTable * __ptr64 __cdecl CLKRHashTable::_SubTable(unsigned long)const  __ptr64
?_SubTable@CLKRHashTable@@AEBAPEAVCLKRLinearHashTable@@K@Z
; private: int __cdecl CLKRHashTable::_SubTableIndex(class CLKRLinearHashTable * __ptr64)const  __ptr64
?_SubTableIndex@CLKRHashTable@@AEBAHPEAVCLKRLinearHashTable@@@Z
; private: bool __cdecl CSmallSpinLock::_TryLock(void) __ptr64
?_TryLock@CSmallSpinLock@@AEAA_NXZ
; private: bool __cdecl CSpinLock::_TryLock(void) __ptr64
?_TryLock@CSpinLock@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock2::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock2@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryReadLockRecursive(void) __ptr64
?_TryReadLockRecursive@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryWriteLock2(void) __ptr64
?_TryWriteLock2@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock2::_TryWriteLock(long) __ptr64
?_TryWriteLock@CReaderWriterLock2@@AEAA_NJ@Z
; private: bool __cdecl CReaderWriterLock3::_TryWriteLock(long) __ptr64
?_TryWriteLock@CReaderWriterLock3@@AEAA_NJ@Z
; private: bool __cdecl CReaderWriterLock::_TryWriteLock(void) __ptr64
?_TryWriteLock@CReaderWriterLock@@AEAA_NXZ
; private: void __cdecl CSpinLock::_Unlock(void) __ptr64
?_Unlock@CSpinLock@@AEAAXXZ
; private: void __cdecl CReaderWriterLock2::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock2@@AEAAXXZ
; private: void __cdecl CReaderWriterLock3::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock3@@AEAAXXZ
; private: void __cdecl CReaderWriterLock::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock@@AEAAXXZ
; long const * const  `public: static long const * __ptr64 __cdecl CLKRHashTableStats::BucketSizes(void)'::`2'::s_aBucketSizes
?s_aBucketSizes@?1??BucketSizes@CLKRHashTableStats@@SAPEBJXZ@4QBJB
; private: static struct _RTL_CRITICAL_SECTION  ALLOC_CACHE_HANDLER::sm_csItems
?sm_csItems@ALLOC_CACHE_HANDLER@@0U_RTL_CRITICAL_SECTION@@A DATA
; protected: static double  CCritSec::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CCritSec@@1NA DATA
; protected: static double  CFakeLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CFakeLock@@1NA DATA
; protected: static double  CReaderWriterLock2::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock2@@1NA DATA
; protected: static double  CReaderWriterLock3::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock3@@1NA DATA
; protected: static double  CReaderWriterLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock@@1NA DATA
; protected: static double  CRtlResource::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CRtlResource@@1NA DATA
; protected: static double  CShareLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CShareLock@@1NA DATA
; protected: static double  CSmallSpinLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CSmallSpinLock@@1NA DATA
; protected: static double  CSpinLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CSpinLock@@1NA DATA
; private: static int  ALLOC_CACHE_HANDLER::sm_fInitCsItems
?sm_fInitCsItems@ALLOC_CACHE_HANDLER@@0HA DATA
; private: static void * __ptr64  __ptr64 ALLOC_CACHE_HANDLER::sm_hTimer
?sm_hTimer@ALLOC_CACHE_HANDLER@@0PEAXEA DATA
; private: static struct _LIST_ENTRY  ALLOC_CACHE_HANDLER::sm_lItemsHead
?sm_lItemsHead@ALLOC_CACHE_HANDLER@@0U_LIST_ENTRY@@A DATA
; private: static class CLockedDoubleList  CLKRHashTable::sm_llGlobalList
?sm_llGlobalList@CLKRHashTable@@0VCLockedDoubleList@@A DATA
; private: static class CLockedDoubleList  CLKRLinearHashTable::sm_llGlobalList
?sm_llGlobalList@CLKRLinearHashTable@@0VCLockedDoubleList@@A DATA
; private: static long  ALLOC_CACHE_HANDLER::sm_nFillPattern
?sm_nFillPattern@ALLOC_CACHE_HANDLER@@0JA DATA
; protected: static class ALLOC_CACHE_HANDLER * __ptr64  __ptr64 CLKRLinearHashTable::sm_palloc
?sm_palloc@CLKRLinearHashTable@@1PEAVALLOC_CACHE_HANDLER@@EA DATA
; protected: static unsigned short  CCritSec::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CCritSec@@1GA DATA
; protected: static unsigned short  CFakeLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CFakeLock@@1GA DATA
; protected: static unsigned short  CReaderWriterLock2::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock2@@1GA DATA
; protected: static unsigned short  CReaderWriterLock3::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock3@@1GA DATA
; protected: static unsigned short  CReaderWriterLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock@@1GA DATA
; protected: static unsigned short  CRtlResource::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CRtlResource@@1GA DATA
; protected: static unsigned short  CShareLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CShareLock@@1GA DATA
; protected: static unsigned short  CSmallSpinLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CSmallSpinLock@@1GA DATA
; protected: static unsigned short  CSpinLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CSpinLock@@1GA DATA
uudecode
uuencode
CreateRefTraceLog
CreateTraceLog
DestroyRefTraceLog
DestroyTraceLog
GetAllocCounters
GetCurrentTimeInSeconds
IISGetCurrentTime
IISGetPlatformType
IISInitializeCriticalSection
IISSetCriticalSectionSpinCount
InetAcquireResourceExclusive
InetAcquireResourceShared
InetConvertExclusiveToShared
InetConvertSharedToExclusive
InetDeleteResource
InetInitializeResource
InetReleaseResource
InitializeIISUtil
IrtlTrace
IsValidAddress
IsValidString
PuCloseDbgMemoryLog
PuCloseDbgPrintFile
PuCreateDebugPrintsObject
PuDbgAssertFailed
PuDbgCaptureContext
PuDbgCreateEvent
PuDbgCreateMutex
PuDbgCreateSemaphore
PuDbgDump
PuDbgPrint
PuDbgPrintCurrentTime
PuDbgPrintError
PuDeleteDebugPrintsObject
PuGetDbgOutputFlags
PuLoadDebugFlagsFromReg
PuLoadDebugFlagsFromRegStr
PuOpenDbgMemoryLog
PuOpenDbgPrintFile
PuReOpenDbgPrintFile
PuSaveDebugFlagsInReg
PuSetDbgOutputFlags
ResetTraceLog
TerminateIISUtil
WriteRefTraceLog
WriteRefTraceLogEx
WriteTraceLog
