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