; 
; Exports of file SMTPSVC.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY SMTPSVC.dll
EXPORTS
; public: __cdecl HASH_TABLE::HASH_TABLE(class HASH_TABLE const & __ptr64) __ptr64
??0HASH_TABLE@@QEAA@AEBV0@@Z
; public: __cdecl HT_ELEMENT::HT_ELEMENT(class HT_ELEMENT const & __ptr64) __ptr64
??0HT_ELEMENT@@QEAA@AEBV0@@Z
; public: __cdecl HT_ELEMENT::HT_ELEMENT(void) __ptr64
??0HT_ELEMENT@@QEAA@XZ
; public: __cdecl IIS_CTL::IIS_CTL(class IIS_CTL const & __ptr64) __ptr64
??0IIS_CTL@@QEAA@AEBV0@@Z
; public: __cdecl IIS_SERVER_CERT::IIS_SERVER_CERT(class IIS_SERVER_CERT const & __ptr64) __ptr64
??0IIS_SERVER_CERT@@QEAA@AEBV0@@Z
; public: __cdecl IIS_SERVICE::IIS_SERVICE(class IIS_SERVICE const & __ptr64) __ptr64
??0IIS_SERVICE@@QEAA@AEBV0@@Z
; public: __cdecl IIS_SSL_INFO::IIS_SSL_INFO(class IIS_SSL_INFO const & __ptr64) __ptr64
??0IIS_SSL_INFO@@QEAA@AEBV0@@Z
; public: __cdecl LOGGING::LOGGING(class LOGGING const & __ptr64) __ptr64
??0LOGGING@@QEAA@AEBV0@@Z
; public: virtual __cdecl HASH_TABLE::~HASH_TABLE(void) __ptr64
??1HASH_TABLE@@UEAA@XZ
; public: virtual __cdecl HT_ELEMENT::~HT_ELEMENT(void) __ptr64
??1HT_ELEMENT@@UEAA@XZ
; public: class HASH_TABLE & __ptr64 __cdecl HASH_TABLE::operator=(class HASH_TABLE const & __ptr64) __ptr64
??4HASH_TABLE@@QEAAAEAV0@AEBV0@@Z
; public: class HT_ELEMENT & __ptr64 __cdecl HT_ELEMENT::operator=(class HT_ELEMENT const & __ptr64) __ptr64
??4HT_ELEMENT@@QEAAAEAV0@AEBV0@@Z
; public: class IIS_CTL & __ptr64 __cdecl IIS_CTL::operator=(class IIS_CTL const & __ptr64) __ptr64
??4IIS_CTL@@QEAAAEAV0@AEBV0@@Z
; public: class IIS_SERVER_CERT & __ptr64 __cdecl IIS_SERVER_CERT::operator=(class IIS_SERVER_CERT const & __ptr64) __ptr64
??4IIS_SERVER_CERT@@QEAAAEAV0@AEBV0@@Z
; public: class IIS_SERVICE & __ptr64 __cdecl IIS_SERVICE::operator=(class IIS_SERVICE const & __ptr64) __ptr64
??4IIS_SERVICE@@QEAAAEAV0@AEBV0@@Z
; public: class IIS_SSL_INFO & __ptr64 __cdecl IIS_SSL_INFO::operator=(class IIS_SSL_INFO const & __ptr64) __ptr64
??4IIS_SSL_INFO@@QEAAAEAV0@AEBV0@@Z
; public: class LOGGING & __ptr64 __cdecl LOGGING::operator=(class LOGGING const & __ptr64) __ptr64
??4LOGGING@@QEAAAEAV0@AEBV0@@Z
; public: class TSVC_CACHE & __ptr64 __cdecl TSVC_CACHE::operator=(class TSVC_CACHE const & __ptr64) __ptr64
??4TSVC_CACHE@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl INET_PARSER::operator+=(int) __ptr64
??YINET_PARSER@@QEAAXH@Z
; const  HASH_TABLE::`vftable'
??_7HASH_TABLE@@6B@
; const  HT_ELEMENT::`vftable'
??_7HT_ELEMENT@@6B@
; const  IIS_SERVICE::`vftable'
??_7IIS_SERVICE@@6B@
; public: void __cdecl IIS_SERVER_INSTANCE::AcquireFastLock(void) __ptr64
?AcquireFastLock@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: void __cdecl IIS_SERVICE::AcquireServiceLock(int) __ptr64
?AcquireServiceLock@IIS_SERVICE@@QEAAXH@Z
; private: static void __cdecl IIS_VROOT_TABLE::AddRefRecord(void const * __ptr64,int)
?AddRefRecord@IIS_VROOT_TABLE@@CAXPEBXH@Z
; public: virtual unsigned long __cdecl HASH_TABLE::CalculateHash(char const * __ptr64)const  __ptr64
?CalculateHash@HASH_TABLE@@UEBAKPEBD@Z
; private: int __cdecl IIS_SSL_INFO::CheckSignature(void) __ptr64
?CheckSignature@IIS_SSL_INFO@@AEAAHXZ
; public: void __cdecl IIS_SERVER_INSTANCE::CleanupAfterConstructorFailure(void) __ptr64
?CleanupAfterConstructorFailure@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: void __cdecl IIS_SERVER_INSTANCE::DecrementCurrentConnections(void) __ptr64
?DecrementCurrentConnections@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: unsigned long __cdecl IIS_SERVICE::DelayCurrentServiceCtrlOperation(unsigned long) __ptr64
?DelayCurrentServiceCtrlOperation@IIS_SERVICE@@QEAAKK@Z
; public: virtual long __cdecl MIME_MAP_ENTRY::Dereference(void) __ptr64
?Dereference@MIME_MAP_ENTRY@@UEAAJXZ
; public: int __cdecl IIS_SERVER_INSTANCE::DoServerNameCheck(void)const  __ptr64
?DoServerNameCheck@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: char * __ptr64 __cdecl INET_PARSER::EatNonWhite(void) __ptr64
?EatNonWhite@INET_PARSER@@QEAAPEADXZ
; public: char * __ptr64 __cdecl INET_PARSER::EatWhite(void) __ptr64
?EatWhite@INET_PARSER@@QEAAPEADXZ
; public: virtual int __cdecl COMMON_METADATA::FinishPrivateProperties(class BUFFER * __ptr64,unsigned long,int) __ptr64
?FinishPrivateProperties@COMMON_METADATA@@UEAAHPEAVBUFFER@@KH@Z
; public: unsigned long __cdecl HASH_TABLE::FlushElements(void) __ptr64
?FlushElements@HASH_TABLE@@QEAAKXZ
; public: unsigned long __cdecl TSVC_CACHE::GetInstanceId(void)const  __ptr64
?GetInstanceId@TSVC_CACHE@@QEBAKXZ
; public: void __cdecl IIS_SERVICE::GetMDInstancePath(unsigned long,char * __ptr64) __ptr64
?GetMDInstancePath@IIS_SERVICE@@QEAAXKPEAD@Z
; public: void * __ptr64 __cdecl TSVC_CACHE::GetServerInstance(void)const  __ptr64
?GetServerInstance@TSVC_CACHE@@QEBAPEAXXZ
; private: virtual unsigned long __cdecl IIS_SERVICE::GetServiceConfigInfoSize(unsigned long) __ptr64
?GetServiceConfigInfoSize@IIS_SERVICE@@EEAAKK@Z
; public: unsigned long __cdecl TSVC_CACHE::GetServiceId(void)const  __ptr64
?GetServiceId@TSVC_CACHE@@QEBAKXZ
; public: class CACHED_TOKEN * __ptr64 __cdecl TCP_AUTHENT::GetToken(void)const  __ptr64
?GetToken@TCP_AUTHENT@@QEBAPEAVCACHED_TOKEN@@XZ
; public: class TSVC_CACHE & __ptr64 __cdecl IIS_SERVER_INSTANCE::GetTsvcCache(void) __ptr64
?GetTsvcCache@IIS_SERVER_INSTANCE@@QEAAAEAVTSVC_CACHE@@XZ
; public: void * __ptr64 __cdecl TCP_AUTHENT::GetUserHandle(void) __ptr64
?GetUserHandle@TCP_AUTHENT@@QEAAPEAXXZ
; public: virtual int __cdecl COMMON_METADATA::HandlePrivateProperty(char * __ptr64,class IIS_SERVER_INSTANCE * __ptr64,struct _METADATA_GETALL_INTERNAL_RECORD * __ptr64,void * __ptr64,class BUFFER * __ptr64,unsigned long * __ptr64,struct _METADATA_ERROR_INFO * __ptr64) __ptr64
?HandlePrivateProperty@COMMON_METADATA@@UEAAHPEADPEAVIIS_SERVER_INSTANCE@@PEAU_METADATA_GETALL_INTERNAL_RECORD@@PEAXPEAVBUFFER@@PEAKPEAU_METADATA_ERROR_INFO@@@Z
; public: int __cdecl IIS_SERVER_INSTANCE::HasNormalBindings(void)const  __ptr64
?HasNormalBindings@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::HasSecureBindings(void)const  __ptr64
?HasSecureBindings@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: void __cdecl IIS_SERVER_INSTANCE::IncrementCurrentConnections(void) __ptr64
?IncrementCurrentConnections@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: int __cdecl IIS_SERVICE::IsActive(void)const  __ptr64
?IsActive@IIS_SERVICE@@QEBAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::IsAutoStart(void)const  __ptr64
?IsAutoStart@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::IsClusterEnabled(void)const  __ptr64
?IsClusterEnabled@IIS_SERVER_INSTANCE@@QEBAHXZ
; private: int __cdecl IIS_SSL_INFO::IsDefaultCTL(void) __ptr64
?IsDefaultCTL@IIS_SSL_INFO@@AEAAHXZ
; public: int __cdecl IIS_SSL_INFO::IsDefaultCertificate(void) __ptr64
?IsDefaultCertificate@IIS_SSL_INFO@@QEAAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::IsDownLevelInstance(void)const  __ptr64
?IsDownLevelInstance@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: int __cdecl IIS_SERVER_CERT::IsFortezzaCert(void) __ptr64
?IsFortezzaCert@IIS_SERVER_CERT@@QEAAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::IsLoggingEnabledA(void)const  __ptr64
?IsLoggingEnabledA@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: virtual int __cdecl MIME_MAP_ENTRY::IsMatch(char const * __ptr64,unsigned long)const  __ptr64
?IsMatch@MIME_MAP_ENTRY@@UEBAHPEBDK@Z
; public: int __cdecl IIS_SERVICE::IsMultiInstance(void)const  __ptr64
?IsMultiInstance@IIS_SERVICE@@QEBAHXZ
; public: int __cdecl IIS_SERVICE::IsSystemDBCS(void)const  __ptr64
?IsSystemDBCS@IIS_SERVICE@@QEBAHXZ
; public: int __cdecl HASH_TABLE::IsValid(void)const  __ptr64
?IsValid@HASH_TABLE@@QEBAHXZ
; public: int __cdecl TS_OPEN_FILE_INFO::IsValid(void)const  __ptr64
?IsValid@TS_OPEN_FILE_INFO@@QEBAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::LoadStr(class STR & __ptr64,unsigned long,int)const  __ptr64
?LoadStr@IIS_SERVER_INSTANCE@@QEBAHAEAVSTR@@KH@Z
; public: void __cdecl IIS_SSL_INFO::Lock(void) __ptr64
?Lock@IIS_SSL_INFO@@QEAAXXZ
; public: void __cdecl IIS_VROOT_TABLE::LockConvertExclusive(void) __ptr64
?LockConvertExclusive@IIS_VROOT_TABLE@@QEAAXXZ
; public: void __cdecl IIS_VROOT_TABLE::LockExclusive(void) __ptr64
?LockExclusive@IIS_VROOT_TABLE@@QEAAXXZ
; private: void __cdecl LOGGING::LockExclusive(void) __ptr64
?LockExclusive@LOGGING@@AEAAXXZ
; public: void __cdecl IIS_VROOT_TABLE::LockShared(void) __ptr64
?LockShared@IIS_VROOT_TABLE@@QEAAXXZ
; private: void __cdecl LOGGING::LockShared(void) __ptr64
?LockShared@LOGGING@@AEAAXXZ
; public: void __cdecl IIS_SERVER_INSTANCE::LockThisForRead(void) __ptr64
?LockThisForRead@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: void __cdecl IIS_SERVER_INSTANCE::LockThisForWrite(void) __ptr64
?LockThisForWrite@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: void __cdecl IIS_SERVICE::LogEvent(unsigned long,unsigned short,char const * __ptr64 * __ptr64 const,unsigned long) __ptr64
?LogEvent@IIS_SERVICE@@QEAAXKGQEAPEBDK@Z
; public: class HT_ELEMENT * __ptr64 __cdecl HASH_TABLE::Lookup(char const * __ptr64) __ptr64
?Lookup@HASH_TABLE@@QEAAPEAVHT_ELEMENT@@PEBD@Z
; public: char * __ptr64 __cdecl INET_PARSER::NextItem(void) __ptr64
?NextItem@INET_PARSER@@QEAAPEADXZ
; public: char * __ptr64 __cdecl INET_PARSER::NextParam(void) __ptr64
?NextParam@INET_PARSER@@QEAAPEADXZ
; public: void __cdecl MIME_MAP::Print(void) __ptr64
?Print@MIME_MAP@@QEAAXXZ
; public: virtual void __cdecl MIME_MAP_ENTRY::Print(void)const  __ptr64
?Print@MIME_MAP_ENTRY@@UEBAXXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryAcceptExOutstanding(void)const  __ptr64
?QueryAcceptExOutstanding@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryAcceptExTimeout(void)const  __ptr64
?QueryAcceptExTimeout@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: virtual class IIS_SSL_INFO * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryAndReferenceSSLInfoObj(void) __ptr64
?QueryAndReferenceSSLInfoObj@IIS_SERVER_INSTANCE@@UEAAPEAVIIS_SSL_INFO@@XZ
; public: unsigned long __cdecl TS_OPEN_FILE_INFO::QueryAttributes(void)const  __ptr64
?QueryAttributes@TS_OPEN_FILE_INFO@@QEBAKXZ
; public: void * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryBandwidthInfo(void)const  __ptr64
?QueryBandwidthInfo@IIS_SERVER_INSTANCE@@QEBAPEAXXZ
; public: class IIS_CTL * __ptr64 __cdecl IIS_SSL_INFO::QueryCTL(void) __ptr64
?QueryCTL@IIS_SSL_INFO@@QEAAPEAVIIS_CTL@@XZ
; public: struct _CTL_CONTEXT const * __ptr64 __cdecl IIS_CTL::QueryCTLContext(void) __ptr64
?QueryCTLContext@IIS_CTL@@QEAAPEBU_CTL_CONTEXT@@XZ
; public: struct _CERT_CONTEXT const * __ptr64 __cdecl IIS_SERVER_CERT::QueryCertContext(void) __ptr64
?QueryCertContext@IIS_SERVER_CERT@@QEAAPEBU_CERT_CONTEXT@@XZ
; public: struct _CERT_CONTEXT const * __ptr64 * __ptr64 __cdecl IIS_SERVER_CERT::QueryCertContextAddr(void) __ptr64
?QueryCertContextAddr@IIS_SERVER_CERT@@QEAAPEAPEBU_CERT_CONTEXT@@XZ
; public: class IIS_SERVER_CERT * __ptr64 __cdecl IIS_SSL_INFO::QueryCertificate(void) __ptr64
?QueryCertificate@IIS_SSL_INFO@@QEAAPEAVIIS_SERVER_CERT@@XZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryConnectionTimeout(void)const  __ptr64
?QueryConnectionTimeout@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: char * __ptr64 __cdecl IIS_SERVER_CERT::QueryContainer(void) __ptr64
?QueryContainer@IIS_SERVER_CERT@@QEAAPEADXZ
; public: struct _SecHandle * __ptr64 __cdecl TCP_AUTHENT::QueryCredHandle(void) __ptr64
?QueryCredHandle@TCP_AUTHENT@@QEAAPEAU_SecHandle@@XZ
; public: struct _SecHandle * __ptr64 __cdecl TCP_AUTHENT::QueryCtxtHandle(void) __ptr64
?QueryCtxtHandle@TCP_AUTHENT@@QEAAPEAU_SecHandle@@XZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryCurrentConnections(void)const  __ptr64
?QueryCurrentConnections@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryCurrentServiceError(void)const  __ptr64
?QueryCurrentServiceError@IIS_SERVICE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryCurrentServiceState(void)const  __ptr64
?QueryCurrentServiceState@IIS_SERVICE@@QEBAKXZ
; public: unsigned short __cdecl IIS_SERVER_INSTANCE::QueryDefaultPort(void)const  __ptr64
?QueryDefaultPort@IIS_SERVER_INSTANCE@@QEBAGXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryDownLevelInstance(void)const  __ptr64
?QueryDownLevelInstance@IIS_SERVICE@@QEBAKXZ
; public: char * __ptr64 __cdecl TS_OPEN_FILE_INFO::QueryETag(void)const  __ptr64
?QueryETag@TS_OPEN_FILE_INFO@@QEBAPEADXZ
; public: class EVENT_LOG * __ptr64 __cdecl IIS_SERVICE::QueryEventLog(void) __ptr64
?QueryEventLog@IIS_SERVICE@@QEAAPEAVEVENT_LOG@@XZ
; public: unsigned long __cdecl IIS_SERVICE::QueryInstanceCount(void)const  __ptr64
?QueryInstanceCount@IIS_SERVICE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryInstanceId(void)const  __ptr64
?QueryInstanceId@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: virtual char const * __ptr64 __cdecl MIME_MAP_ENTRY::QueryKey(void)const  __ptr64
?QueryKey@MIME_MAP_ENTRY@@UEBAPEBDXZ
; public: virtual unsigned long __cdecl MIME_MAP_ENTRY::QueryKeyLen(void)const  __ptr64
?QueryKeyLen@MIME_MAP_ENTRY@@UEBAKXZ
; public: int __cdecl TS_OPEN_FILE_INFO::QueryLastWriteTime(struct _FILETIME * __ptr64)const  __ptr64
?QueryLastWriteTime@TS_OPEN_FILE_INFO@@QEBAHPEAU_FILETIME@@@Z
; public: unsigned short * __ptr64 __cdecl IIS_CTL::QueryListIdentifier(void) __ptr64
?QueryListIdentifier@IIS_CTL@@QEAAPEAGXZ
; public: int __cdecl IIS_SERVER_INSTANCE::QueryLogAnonymous(void)const  __ptr64
?QueryLogAnonymous@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: int __cdecl IIS_SERVER_INSTANCE::QueryLogNonAnonymous(void)const  __ptr64
?QueryLogNonAnonymous@IIS_SERVER_INSTANCE@@QEBAHXZ
; public: char * __ptr64 __cdecl IIS_CTL::QueryMBPath(void) __ptr64
?QueryMBPath@IIS_CTL@@QEAAPEADXZ
; public: char * __ptr64 __cdecl IIS_SERVER_CERT::QueryMBPath(void) __ptr64
?QueryMBPath@IIS_SERVER_CERT@@QEAAPEADXZ
; public: char const * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryMDPath(void)const  __ptr64
?QueryMDPath@IIS_SERVER_INSTANCE@@QEBAPEBDXZ
; public: char const * __ptr64 __cdecl IIS_SERVICE::QueryMDPath(void)const  __ptr64
?QueryMDPath@IIS_SERVICE@@QEBAPEBDXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryMDPathLen(void)const  __ptr64
?QueryMDPathLen@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: char const * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryMDVRPath(void)const  __ptr64
?QueryMDVRPath@IIS_SERVER_INSTANCE@@QEBAPEBDXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryMDVRPathLen(void)const  __ptr64
?QueryMDVRPathLen@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryMaxConnections(void)const  __ptr64
?QueryMaxConnections@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryMaxEndpointConnections(void)const  __ptr64
?QueryMaxEndpointConnections@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: class MIME_MAP * __ptr64 __cdecl IIS_SERVICE::QueryMimeMap(void)const  __ptr64
?QueryMimeMap@IIS_SERVICE@@QEBAPEAVMIME_MAP@@XZ
; public: char const * __ptr64 __cdecl IIS_SERVICE::QueryModuleName(void)const  __ptr64
?QueryModuleName@IIS_SERVICE@@QEBAPEBDXZ
; public: unsigned long __cdecl IIS_SERVER_CERT::QueryOpenFlags(void) __ptr64
?QueryOpenFlags@IIS_SERVER_CERT@@QEAAKXZ
; public: void * __ptr64 __cdecl IIS_CTL::QueryOriginalStore(void) __ptr64
?QueryOriginalStore@IIS_CTL@@QEAAPEAXXZ
; public: char * __ptr64 __cdecl IIS_SERVER_CERT::QueryProviderName(void) __ptr64
?QueryProviderName@IIS_SERVER_CERT@@QEAAPEADXZ
; public: unsigned long __cdecl IIS_SERVER_CERT::QueryProviderType(void) __ptr64
?QueryProviderType@IIS_SERVER_CERT@@QEAAKXZ
; public: long * __ptr64 __cdecl RefBlob::QueryRefCount(void) __ptr64
?QueryRefCount@RefBlob@@QEAAPEAJXZ
; public: char const * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryRegParamKey(void)const  __ptr64
?QueryRegParamKey@IIS_SERVER_INSTANCE@@QEBAPEBDXZ
; public: char const * __ptr64 __cdecl IIS_SERVICE::QueryRegParamKey(void)const  __ptr64
?QueryRegParamKey@IIS_SERVICE@@QEBAPEBDXZ
; public: char * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryRoot(void)const  __ptr64
?QueryRoot@IIS_SERVER_INSTANCE@@QEBAPEADXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QuerySavedState(void)const  __ptr64
?QuerySavedState@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryServerSize(void)const  __ptr64
?QueryServerSize@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::QueryServerState(void)const  __ptr64
?QueryServerState@IIS_SERVER_INSTANCE@@QEBAKXZ
; public: char const * __ptr64 __cdecl IIS_SERVICE::QueryServiceComment(void)const  __ptr64
?QueryServiceComment@IIS_SERVICE@@QEBAPEBDXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryServiceId(void)const  __ptr64
?QueryServiceId@IIS_SERVICE@@QEBAKXZ
; public: char const * __ptr64 __cdecl IIS_SERVICE::QueryServiceName(void)const  __ptr64
?QueryServiceName@IIS_SERVICE@@QEBAPEBDXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryServiceSpecificExitCode(void)const  __ptr64
?QueryServiceSpecificExitCode@IIS_SERVICE@@QEBAKXZ
; public: unsigned long __cdecl IIS_SERVICE::QueryShutdownScheduleId(void)const  __ptr64
?QueryShutdownScheduleId@IIS_SERVICE@@QEBAKXZ
; public: char const * __ptr64 __cdecl IIS_SERVER_INSTANCE::QuerySiteName(void)const  __ptr64
?QuerySiteName@IIS_SERVER_INSTANCE@@QEBAPEBDXZ
; public: int __cdecl TS_OPEN_FILE_INFO::QuerySize(union _LARGE_INTEGER & __ptr64)const  __ptr64
?QuerySize@TS_OPEN_FILE_INFO@@QEBAHAEAT_LARGE_INTEGER@@@Z
; public: int __cdecl TS_OPEN_FILE_INFO::QuerySize(unsigned long * __ptr64,unsigned long * __ptr64)const  __ptr64
?QuerySize@TS_OPEN_FILE_INFO@@QEBAHPEAK0@Z
; public: struct _SecHandle * __ptr64 __cdecl TCP_AUTHENT::QuerySslCtxtHandle(void) __ptr64
?QuerySslCtxtHandle@TCP_AUTHENT@@QEAAPEAU_SecHandle@@XZ
; public: unsigned long __cdecl IIS_CTL::QueryStatus(void) __ptr64
?QueryStatus@IIS_CTL@@QEAAKXZ
; public: void * __ptr64 __cdecl IIS_SERVER_CERT::QueryStoreHandle(void) __ptr64
?QueryStoreHandle@IIS_SERVER_CERT@@QEAAPEAXXZ
; public: char * __ptr64 __cdecl IIS_CTL::QueryStoreName(void) __ptr64
?QueryStoreName@IIS_CTL@@QEAAPEADXZ
; public: char * __ptr64 __cdecl IIS_SERVER_CERT::QueryStoreName(void) __ptr64
?QueryStoreName@IIS_SERVER_CERT@@QEAAPEADXZ
; public: unsigned long __cdecl IIS_VROOT_TABLE::QueryVrootCount(void) __ptr64
?QueryVrootCount@IIS_VROOT_TABLE@@QEAAKXZ
; public: class IIS_VROOT_TABLE * __ptr64 __cdecl IIS_SERVER_INSTANCE::QueryVrootTable(void) __ptr64
?QueryVrootTable@IIS_SERVER_INSTANCE@@QEAAPEAVIIS_VROOT_TABLE@@XZ
; public: virtual long __cdecl MIME_MAP_ENTRY::Reference(void) __ptr64
?Reference@MIME_MAP_ENTRY@@UEAAJXZ
; public: void __cdecl IIS_SERVER_INSTANCE::ReleaseFastLock(void) __ptr64
?ReleaseFastLock@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: void __cdecl IIS_SERVICE::ReleaseServiceLock(int) __ptr64
?ReleaseServiceLock@IIS_SERVICE@@QEAAXH@Z
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::RemoveNormalBindings(void) __ptr64
?RemoveNormalBindings@IIS_SERVER_INSTANCE@@QEAAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::RemoveSecureBindings(void) __ptr64
?RemoveSecureBindings@IIS_SERVER_INSTANCE@@QEAAKXZ
; public: void __cdecl INET_PARSER::RestoreBuffer(void) __ptr64
?RestoreBuffer@INET_PARSER@@QEAAXXZ
; public: int __cdecl TS_OPEN_FILE_INFO::RetrieveHttpInfo(char * __ptr64,int * __ptr64) __ptr64
?RetrieveHttpInfo@TS_OPEN_FILE_INFO@@QEAAHPEADPEAH@Z
; public: void __cdecl IIS_SERVER_INSTANCE::SaveServerState(void) __ptr64
?SaveServerState@IIS_SERVER_INSTANCE@@QEAAXXZ
ServiceEntry
; public: void __cdecl COMMON_METADATA::SetAccessPerms(unsigned long) __ptr64
?SetAccessPerms@COMMON_METADATA@@QEAAXK@Z
; public: void __cdecl TSVC_CACHE::SetParameters(unsigned long,unsigned long,void * __ptr64) __ptr64
?SetParameters@TSVC_CACHE@@QEAAXKKPEAX@Z
; public: void __cdecl IIS_SERVICE::SetServiceComment(char * __ptr64) __ptr64
?SetServiceComment@IIS_SERVICE@@QEAAXPEAD@Z
; public: void __cdecl IIS_SERVICE::SetServiceSpecificExitCode(unsigned long) __ptr64
?SetServiceSpecificExitCode@IIS_SERVICE@@QEAAXK@Z
; public: void __cdecl IIS_SERVER_INSTANCE::SetZapRegKey(void) __ptr64
?SetZapRegKey@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: unsigned long __cdecl IIS_SERVER_CERT::Status(void) __ptr64
?Status@IIS_SERVER_CERT@@QEAAKXZ
; public: virtual void __cdecl IIS_SERVICE::StopInstanceProcs(class IIS_SERVER_INSTANCE * __ptr64) __ptr64
?StopInstanceProcs@IIS_SERVICE@@UEAAXPEAVIIS_SERVER_INSTANCE@@@Z
; public: void __cdecl IIS_SSL_INFO::Unlock(void) __ptr64
?Unlock@IIS_SSL_INFO@@QEAAXXZ
; public: void __cdecl IIS_VROOT_TABLE::Unlock(void) __ptr64
?Unlock@IIS_VROOT_TABLE@@QEAAXXZ
; private: void __cdecl LOGGING::Unlock(void) __ptr64
?Unlock@LOGGING@@AEAAXXZ
; public: void __cdecl IIS_SERVER_INSTANCE::UnlockThis(void) __ptr64
?UnlockThis@IIS_SERVER_INSTANCE@@QEAAXXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::UpdateNormalBindings(void) __ptr64
?UpdateNormalBindings@IIS_SERVER_INSTANCE@@QEAAKXZ
; public: unsigned long __cdecl IIS_SERVER_INSTANCE::UpdateSecureBindings(void) __ptr64
?UpdateSecureBindings@IIS_SERVER_INSTANCE@@QEAAKXZ
; private: int __cdecl IIS_SERVER_CERT::UseProgrammaticPINEntry(class MB * __ptr64) __ptr64
?UseProgrammaticPINEntry@IIS_SERVER_CERT@@AEAAHPEAVMB@@@Z
; public: int __cdecl TS_OPEN_FILE_INFO::WeakETag(void)const  __ptr64
?WeakETag@TS_OPEN_FILE_INFO@@QEBAHXZ
; int __cdecl uudecode(char * __ptr64,class BUFFER * __ptr64,unsigned long * __ptr64,int)
?uudecode@@YAHPEADPEAVBUFFER@@PEAKH@Z
; int __cdecl uuencode(unsigned char * __ptr64,unsigned long,class BUFFER * __ptr64,int)
?uuencode@@YAHPEAEKPEAVBUFFER@@H@Z
