; 
; Exports of file RWNH.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY RWNH.dll
EXPORTS
; public: __cdecl CCritSection::CCritSection(void) __ptr64
??0CCritSection@@QEAA@XZ
; public: __cdecl CShareLockExport::CShareLockExport(void) __ptr64
??0CShareLockExport@@QEAA@XZ
; public: __cdecl CShareLockNH::CShareLockNH(void) __ptr64
??0CShareLockNH@@QEAA@XZ
; public: __cdecl CSimpleCritSection::CSimpleCritSection(void) __ptr64
??0CSimpleCritSection@@QEAA@XZ
; public: __cdecl CCritSection::~CCritSection(void) __ptr64
??1CCritSection@@QEAA@XZ
; public: __cdecl CShareLockExport::~CShareLockExport(void) __ptr64
??1CShareLockExport@@QEAA@XZ
; public: __cdecl CShareLockNH::~CShareLockNH(void) __ptr64
??1CShareLockNH@@QEAA@XZ
; public: __cdecl CSimpleCritSection::~CSimpleCritSection(void) __ptr64
??1CSimpleCritSection@@QEAA@XZ
; public: class CShareLockExport & __ptr64 __cdecl CShareLockExport::operator=(class CShareLockExport const & __ptr64) __ptr64
??4CShareLockExport@@QEAAAEAV0@AEBV0@@Z
; public: class CSimpleCritSection & __ptr64 __cdecl CSimpleCritSection::operator=(class CSimpleCritSection const & __ptr64) __ptr64
??4CSimpleCritSection@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CCritSection::Enter(class CWaitingThread & __ptr64) __ptr64
?Enter@CCritSection@@QEAAXAEAVCWaitingThread@@@Z
; public: void __cdecl CCritSection::Enter(void) __ptr64
?Enter@CCritSection@@QEAAXXZ
; public: void __cdecl CSimpleCritSection::Enter(class CWaitingThread & __ptr64) __ptr64
?Enter@CSimpleCritSection@@QEAAXAEAVCWaitingThread@@@Z
; public: void __cdecl CSimpleCritSection::Enter(void) __ptr64
?Enter@CSimpleCritSection@@QEAAXXZ
; public: void __cdecl CShareLockExport::ExclusiveLock(void) __ptr64
?ExclusiveLock@CShareLockExport@@QEAAXXZ
; public: void __cdecl CShareLockNH::ExclusiveLock(void) __ptr64
?ExclusiveLock@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockNH::ExclusiveToPartial(void) __ptr64
?ExclusiveToPartial@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockExport::ExclusiveToShared(void) __ptr64
?ExclusiveToShared@CShareLockExport@@QEAAXXZ
; public: void __cdecl CShareLockNH::ExclusiveToShared(void) __ptr64
?ExclusiveToShared@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockExport::ExclusiveUnlock(void) __ptr64
?ExclusiveUnlock@CShareLockExport@@QEAAXXZ
; public: void __cdecl CShareLockNH::ExclusiveUnlock(void) __ptr64
?ExclusiveUnlock@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockNH::FirstPartialToExclusive(void) __ptr64
?FirstPartialToExclusive@CShareLockNH@@QEAAXXZ
; void * __ptr64 __cdecl GetPerThreadEvent(void)
?GetPerThreadEvent@@YAPEAXXZ
; public: void __cdecl CCritSection::Leave(void) __ptr64
?Leave@CCritSection@@QEAAXXZ
; public: void __cdecl CSimpleCritSection::Leave(void) __ptr64
?Leave@CSimpleCritSection@@QEAAXXZ
; public: void __cdecl CShareLockNH::PartialLock(void) __ptr64
?PartialLock@CShareLockNH@@QEAAXXZ
; public: int __cdecl CShareLockNH::PartialToExclusive(void) __ptr64
?PartialToExclusive@CShareLockNH@@QEAAHXZ
; public: void __cdecl CShareLockNH::PartialToShared(void) __ptr64
?PartialToShared@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockNH::PartialUnlock(void) __ptr64
?PartialUnlock@CShareLockNH@@QEAAXXZ
; public: void __cdecl CShareLockExport::ShareLock(void) __ptr64
?ShareLock@CShareLockExport@@QEAAXXZ
; public: void __cdecl CShareLockNH::ShareLock(void) __ptr64
?ShareLock@CShareLockNH@@QEAAXXZ
; private: void __cdecl CShareLockNH::ShareLockInternal(void) __ptr64
?ShareLockInternal@CShareLockNH@@AEAAXXZ
; public: void __cdecl CShareLockExport::ShareUnlock(void) __ptr64
?ShareUnlock@CShareLockExport@@QEAAXXZ
; public: void __cdecl CShareLockNH::ShareUnlock(void) __ptr64
?ShareUnlock@CShareLockNH@@QEAAXXZ
; private: void __cdecl CShareLockNH::ShareUnlockInternal(void) __ptr64
?ShareUnlockInternal@CShareLockNH@@AEAAXXZ
; public: int __cdecl CShareLockExport::SharedToExclusive(void) __ptr64
?SharedToExclusive@CShareLockExport@@QEAAHXZ
; public: int __cdecl CShareLockNH::SharedToExclusive(void) __ptr64
?SharedToExclusive@CShareLockNH@@QEAAHXZ
; public: int __cdecl CShareLockNH::SharedToPartial(void) __ptr64
?SharedToPartial@CShareLockNH@@QEAAHXZ
; public: int __cdecl CCritSection::TryEnter(class CWaitingThread & __ptr64) __ptr64
?TryEnter@CCritSection@@QEAAHAEAVCWaitingThread@@@Z
; public: int __cdecl CCritSection::TryEnter(void) __ptr64
?TryEnter@CCritSection@@QEAAHXZ
; public: int __cdecl CSimpleCritSection::TryEnter(class CWaitingThread & __ptr64) __ptr64
?TryEnter@CSimpleCritSection@@QEAAHAEAVCWaitingThread@@@Z
; public: int __cdecl CSimpleCritSection::TryEnter(void) __ptr64
?TryEnter@CSimpleCritSection@@QEAAHXZ
; public: int __cdecl CShareLockExport::TryExclusiveLock(void) __ptr64
?TryExclusiveLock@CShareLockExport@@QEAAHXZ
; public: int __cdecl CShareLockNH::TryExclusiveLock(void) __ptr64
?TryExclusiveLock@CShareLockNH@@QEAAHXZ
; public: int __cdecl CShareLockNH::TryPartialLock(void) __ptr64
?TryPartialLock@CShareLockNH@@QEAAHXZ
; public: int __cdecl CShareLockExport::TryShareLock(void) __ptr64
?TryShareLock@CShareLockExport@@QEAAHXZ
; public: int __cdecl CShareLockNH::TryShareLock(void) __ptr64
?TryShareLock@CShareLockNH@@QEAAHXZ
; private: void __cdecl CShareLockNH::WakeReaders(void) __ptr64
?WakeReaders@CShareLockNH@@AEAAXXZ
