; 
; Exports of file WMIsvc.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY WMIsvc.DLL
EXPORTS
; public: __cdecl C9XAce::C9XAce(class C9XAce const & __ptr64) __ptr64
??0C9XAce@@QEAA@AEBV0@@Z
; public: __cdecl C9XAce::C9XAce(void) __ptr64
??0C9XAce@@QEAA@XZ
; public: __cdecl CArena::CArena(class CArena const & __ptr64) __ptr64
??0CArena@@QEAA@AEBV0@@Z
; public: __cdecl CArena::CArena(void) __ptr64
??0CArena@@QEAA@XZ
; public: __cdecl CBaseAce::CBaseAce(class CBaseAce const & __ptr64) __ptr64
??0CBaseAce@@QEAA@AEBV0@@Z
; public: __cdecl CBaseAce::CBaseAce(void) __ptr64
??0CBaseAce@@QEAA@XZ
; public: __cdecl CCheckedInCritSec::CCheckedInCritSec(class CCritSec * __ptr64) __ptr64
??0CCheckedInCritSec@@QEAA@PEAVCCritSec@@@Z
; public: __cdecl CCritSec::CCritSec(void) __ptr64
??0CCritSec@@QEAA@XZ
; public: __cdecl CEnterWbemCriticalSection::CEnterWbemCriticalSection(class CWbemCriticalSection * __ptr64,unsigned long) __ptr64
??0CEnterWbemCriticalSection@@QEAA@PEAVCWbemCriticalSection@@K@Z
; public: __cdecl CHaltable::CHaltable(class CHaltable const & __ptr64) __ptr64
??0CHaltable@@QEAA@AEBV0@@Z
; public: __cdecl CInCritSec::CInCritSec(struct _RTL_CRITICAL_SECTION * __ptr64) __ptr64
??0CInCritSec@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CNtAce::CNtAce(void) __ptr64
??0CNtAce@@QEAA@XZ
; public: __cdecl CNtSid::CNtSid(void) __ptr64
??0CNtSid@@QEAA@XZ
; public: __cdecl CWin32DefaultArena::CWin32DefaultArena(class CWin32DefaultArena const & __ptr64) __ptr64
??0CWin32DefaultArena@@QEAA@AEBV0@@Z
; public: __cdecl CWin32DefaultArena::CWin32DefaultArena(void) __ptr64
??0CWin32DefaultArena@@QEAA@XZ
; public: virtual __cdecl CBaseAce::~CBaseAce(void) __ptr64
??1CBaseAce@@UEAA@XZ
; public: __cdecl CCheckedInCritSec::~CCheckedInCritSec(void) __ptr64
??1CCheckedInCritSec@@QEAA@XZ
; public: __cdecl CCritSec::~CCritSec(void) __ptr64
??1CCritSec@@QEAA@XZ
; public: __cdecl CEnterWbemCriticalSection::~CEnterWbemCriticalSection(void) __ptr64
??1CEnterWbemCriticalSection@@QEAA@XZ
; public: __cdecl CInCritSec::~CInCritSec(void) __ptr64
??1CInCritSec@@QEAA@XZ
; public: __cdecl CWin32DefaultArena::~CWin32DefaultArena(void) __ptr64
??1CWin32DefaultArena@@QEAA@XZ
; public: class C9XAce & __ptr64 __cdecl C9XAce::operator=(class C9XAce const & __ptr64) __ptr64
??4C9XAce@@QEAAAEAV0@AEBV0@@Z
; public: class CArena & __ptr64 __cdecl CArena::operator=(class CArena const & __ptr64) __ptr64
??4CArena@@QEAAAEAV0@AEBV0@@Z
; public: class CBaseAce & __ptr64 __cdecl CBaseAce::operator=(class CBaseAce const & __ptr64) __ptr64
??4CBaseAce@@QEAAAEAV0@AEBV0@@Z
; public: class CCheckedInCritSec & __ptr64 __cdecl CCheckedInCritSec::operator=(class CCheckedInCritSec const & __ptr64) __ptr64
??4CCheckedInCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CCritSec & __ptr64 __cdecl CCritSec::operator=(class CCritSec const & __ptr64) __ptr64
??4CCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CEnterWbemCriticalSection & __ptr64 __cdecl CEnterWbemCriticalSection::operator=(class CEnterWbemCriticalSection const & __ptr64) __ptr64
??4CEnterWbemCriticalSection@@QEAAAEAV0@AEBV0@@Z
; public: class CFlexQueue & __ptr64 __cdecl CFlexQueue::operator=(class CFlexQueue const & __ptr64) __ptr64
??4CFlexQueue@@QEAAAEAV0@AEBV0@@Z
; public: class CHaltable & __ptr64 __cdecl CHaltable::operator=(class CHaltable const & __ptr64) __ptr64
??4CHaltable@@QEAAAEAV0@AEBV0@@Z
; public: class CInCritSec & __ptr64 __cdecl CInCritSec::operator=(class CInCritSec const & __ptr64) __ptr64
??4CInCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CNtSecurity & __ptr64 __cdecl CNtSecurity::operator=(class CNtSecurity const & __ptr64) __ptr64
??4CNtSecurity@@QEAAAEAV0@AEBV0@@Z
; public: class CPersistentConfig & __ptr64 __cdecl CPersistentConfig::operator=(class CPersistentConfig const & __ptr64) __ptr64
??4CPersistentConfig@@QEAAAEAV0@AEBV0@@Z
; public: class CSmallArrayBlob & __ptr64 __cdecl CSmallArrayBlob::operator=(class CSmallArrayBlob const & __ptr64) __ptr64
??4CSmallArrayBlob@@QEAAAEAV0@AEBV0@@Z
; public: class CStaticCritSec & __ptr64 __cdecl CStaticCritSec::operator=(class CStaticCritSec const & __ptr64) __ptr64
??4CStaticCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemCriticalSection & __ptr64 __cdecl CWbemCriticalSection::operator=(class CWbemCriticalSection const & __ptr64) __ptr64
??4CWbemCriticalSection@@QEAAAEAV0@AEBV0@@Z
; public: class CWin32DefaultArena & __ptr64 __cdecl CWin32DefaultArena::operator=(class CWin32DefaultArena const & __ptr64) __ptr64
??4CWin32DefaultArena@@QEAAAEAV0@AEBV0@@Z
; public: class MD5 & __ptr64 __cdecl MD5::operator=(class MD5 const & __ptr64) __ptr64
??4MD5@@QEAAAEAV0@AEBV0@@Z
; public: class Registry & __ptr64 __cdecl Registry::operator=(class Registry const & __ptr64) __ptr64
??4Registry@@QEAAAEAV0@AEBV0@@Z
; public: void * __ptr64 & __ptr64 __cdecl CFlexArray::operator[](int) __ptr64
??ACFlexArray@@QEAAAEAPEAXH@Z
; public: void * __ptr64 __cdecl CFlexArray::operator[](int)const  __ptr64
??ACFlexArray@@QEBAPEAXH@Z
; public: void * __ptr64 __cdecl CSmallArrayBlob::operator[](int)const  __ptr64
??ACSmallArrayBlob@@QEBAPEAXH@Z
; public: unsigned short * __ptr64 __cdecl CWStringArray::operator[](int)const  __ptr64
??ACWStringArray@@QEBAPEAGH@Z
; const  C9XAce::`vftable'
??_7C9XAce@@6B@
; const  CArena::`vftable'
??_7CArena@@6B@
; const  CBaseAce::`vftable'
??_7CBaseAce@@6B@
; const  CHaltable::`vftable'
??_7CHaltable@@6B@
; const  CNtAce::`vftable'
??_7CNtAce@@6B@
; const  CWin32DefaultArena::`vftable'
??_7CWin32DefaultArena@@6B@
; public: void __cdecl CFlexArray::`default constructor closure'(void) __ptr64
??_FCFlexArray@@QEAAXXZ
; public: void __cdecl CFlexQueue::`default constructor closure'(void) __ptr64
??_FCFlexQueue@@QEAAXXZ
; public: void __cdecl CNtAcl::`default constructor closure'(void) __ptr64
??_FCNtAcl@@QEAAXXZ
; public: void __cdecl CWStringArray::`default constructor closure'(void) __ptr64
??_FCWStringArray@@QEAAXXZ
; public: int __cdecl CFlexArray::Add(void * __ptr64) __ptr64
?Add@CFlexArray@@QEAAHPEAX@Z
; public: virtual void * __ptr64 __cdecl CWin32DefaultArena::Alloc(unsigned __int64) __ptr64
?Alloc@CWin32DefaultArena@@UEAAPEAX_K@Z
; public: void __cdecl CWStringArray::Compress(void) __ptr64
?Compress@CWStringArray@@QEAAXXZ
; protected: void __cdecl CFlexQueue::DecrementIndex(int & __ptr64) __ptr64
?DecrementIndex@CFlexQueue@@IEAAXAEAH@Z
DredgeRA
; public: void __cdecl CCheckedInCritSec::Enter(void) __ptr64
?Enter@CCheckedInCritSec@@QEAAXXZ
; public: void __cdecl CCritSec::Enter(void) __ptr64
?Enter@CCritSec@@QEAAXXZ
; public: virtual int __cdecl CWin32DefaultArena::Free(void * __ptr64) __ptr64
?Free@CWin32DefaultArena@@UEAAHPEAX@Z
; public: virtual unsigned long __cdecl C9XAce::GetAccessMask(void) __ptr64
?GetAccessMask@C9XAce@@UEAAKXZ
; public: void * __ptr64 * __ptr64 __cdecl CFlexArray::GetArrayPtr(void) __ptr64
?GetArrayPtr@CFlexArray@@QEAAPEAPEAXXZ
; public: void * __ptr64 const * __ptr64 __cdecl CFlexArray::GetArrayPtr(void)const  __ptr64
?GetArrayPtr@CFlexArray@@QEBAPEBQEAXXZ
; public: void * __ptr64 * __ptr64 __cdecl CSmallArrayBlob::GetArrayPtr(void) __ptr64
?GetArrayPtr@CSmallArrayBlob@@QEAAPEAPEAXXZ
; public: void * __ptr64 const * __ptr64 __cdecl CSmallArrayBlob::GetArrayPtr(void)const  __ptr64
?GetArrayPtr@CSmallArrayBlob@@QEBAPEBQEAXXZ
; public: unsigned short const * __ptr64 * __ptr64 __cdecl CWStringArray::GetArrayPtr(void) __ptr64
?GetArrayPtr@CWStringArray@@QEAAPEAPEBGXZ
; public: void * __ptr64 __cdecl CFlexArray::GetAt(int)const  __ptr64
?GetAt@CFlexArray@@QEBAPEAXH@Z
; public: void * __ptr64 __cdecl CSmallArrayBlob::GetAt(int)const  __ptr64
?GetAt@CSmallArrayBlob@@QEBAPEAXH@Z
; public: unsigned short * __ptr64 __cdecl CWStringArray::GetAt(int)const  __ptr64
?GetAt@CWStringArray@@QEBAPEAGH@Z
; public: virtual int __cdecl C9XAce::GetFlags(void) __ptr64
?GetFlags@C9XAce@@UEAAHXZ
; public: long __cdecl Registry::GetLastError(void) __ptr64
?GetLastError@Registry@@QEAAJXZ
; public: long __cdecl CWbemCriticalSection::GetLockCount(void) __ptr64
?GetLockCount@CWbemCriticalSection@@QEAAJXZ
; public: unsigned long __cdecl CWbemCriticalSection::GetOwningThreadId(void) __ptr64
?GetOwningThreadId@CWbemCriticalSection@@QEAAKXZ
; public: struct _ACCESS_ALLOWED_ACE * __ptr64 __cdecl CNtAce::GetPtr(void) __ptr64
?GetPtr@CNtAce@@QEAAPEAU_ACCESS_ALLOWED_ACE@@XZ
; public: struct _ACL * __ptr64 __cdecl CNtAcl::GetPtr(void) __ptr64
?GetPtr@CNtAcl@@QEAAPEAU_ACL@@XZ
; public: void * __ptr64 __cdecl CNtSecurityDescriptor::GetPtr(void) __ptr64
?GetPtr@CNtSecurityDescriptor@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl CNtSid::GetPtr(void) __ptr64
?GetPtr@CNtSid@@QEAAPEAXXZ
; public: int __cdecl CFlexQueue::GetQueueSize(void)const  __ptr64
?GetQueueSize@CFlexQueue@@QEBAHXZ
; public: long __cdecl CWbemCriticalSection::GetRecursionCount(void) __ptr64
?GetRecursionCount@CWbemCriticalSection@@QEAAJXZ
; public: unsigned long __cdecl CNtAce::GetSize(void) __ptr64
?GetSize@CNtAce@@QEAAKXZ
; public: virtual unsigned long __cdecl C9XAce::GetStatus(void) __ptr64
?GetStatus@C9XAce@@UEAAKXZ
; public: virtual unsigned long __cdecl CNtAce::GetStatus(void) __ptr64
?GetStatus@CNtAce@@UEAAKXZ
; public: unsigned long __cdecl CNtAcl::GetStatus(void) __ptr64
?GetStatus@CNtAcl@@QEAAKXZ
; public: unsigned long __cdecl CNtSecurityDescriptor::GetStatus(void) __ptr64
?GetStatus@CNtSecurityDescriptor@@QEAAKXZ
; public: unsigned long __cdecl CNtSid::GetStatus(void) __ptr64
?GetStatus@CNtSid@@QEAAKXZ
; public: virtual int __cdecl C9XAce::GetType(void) __ptr64
?GetType@C9XAce@@UEAAHXZ
; protected: void __cdecl CFlexQueue::IncrementIndex(int & __ptr64) __ptr64
?IncrementIndex@CFlexQueue@@IEAAXAEAH@Z
; public: int __cdecl CCheckedInCritSec::IsEntered(void) __ptr64
?IsEntered@CCheckedInCritSec@@QEAAHXZ
; public: int __cdecl CEnterWbemCriticalSection::IsEntered(void) __ptr64
?IsEntered@CEnterWbemCriticalSection@@QEAAHXZ
IsShutDown
; public: bool __cdecl CNtSid::IsUser(void) __ptr64
?IsUser@CNtSid@@QEAA_NXZ
; public: int __cdecl CNtAcl::IsValid(void) __ptr64
?IsValid@CNtAcl@@QEAAHXZ
; public: int __cdecl CNtSecurityDescriptor::IsValid(void) __ptr64
?IsValid@CNtSecurityDescriptor@@QEAAHXZ
; public: int __cdecl CNtSid::IsValid(void) __ptr64
?IsValid@CNtSid@@QEAAHXZ
; public: void __cdecl CCheckedInCritSec::Leave(void) __ptr64
?Leave@CCheckedInCritSec@@QEAAXXZ
; public: void __cdecl CCritSec::Leave(void) __ptr64
?Leave@CCritSec@@QEAAXXZ
MoveToAlone
MoveToShared
; public: virtual void * __ptr64 __cdecl CWin32DefaultArena::Realloc(void * __ptr64,unsigned __int64) __ptr64
?Realloc@CWin32DefaultArena@@UEAAPEAXPEAX_K@Z
ServiceMain
; public: void __cdecl CFlexArray::SetAt(int,void * __ptr64) __ptr64
?SetAt@CFlexArray@@QEAAXHPEAX@Z
; public: virtual void __cdecl C9XAce::SetFlags(long) __ptr64
?SetFlags@C9XAce@@UEAAXJ@Z
; public: virtual void __cdecl CNtAce::SetFlags(long) __ptr64
?SetFlags@CNtAce@@UEAAXJ@Z
; public: void __cdecl CFlexArray::SetSize(int) __ptr64
?SetSize@CFlexArray@@QEAAXH@Z
; public: int __cdecl CFlexArray::Size(void)const  __ptr64
?Size@CFlexArray@@QEBAHXZ
; public: int __cdecl CSmallArrayBlob::Size(void)const  __ptr64
?Size@CSmallArrayBlob@@QEBAHXZ
; public: int __cdecl CWStringArray::Size(void)const  __ptr64
?Size@CWStringArray@@QEBAHXZ
; public: void * __ptr64 __cdecl CFlexQueue::Unqueue(void) __ptr64
?Unqueue@CFlexQueue@@QEAAPEAXXZ
; public: static void __cdecl CWin32DefaultArena::WbemSysFreeString(unsigned short * __ptr64)
?WbemSysFreeString@CWin32DefaultArena@@SAXPEAG@Z
; public: bool __cdecl CHaltable::isValid(void) __ptr64
?isValid@CHaltable@@QEAA_NXZ
DllRegisterServer
DllUnregisterServer
