; 
; 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
