; 
; Exports of file UFAT.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY UFAT.dll
EXPORTS
; public: __cdecl CLUSTER_CHAIN::CLUSTER_CHAIN(void) __ptr64
??0CLUSTER_CHAIN@@QEAA@XZ
; public: __cdecl EA_HEADER::EA_HEADER(void) __ptr64
??0EA_HEADER@@QEAA@XZ
; public: __cdecl EA_SET::EA_SET(void) __ptr64
??0EA_SET@@QEAA@XZ
; public: __cdecl FAT_DIRENT::FAT_DIRENT(void) __ptr64
??0FAT_DIRENT@@QEAA@XZ
; public: __cdecl FAT_SA::FAT_SA(void) __ptr64
??0FAT_SA@@QEAA@XZ
; public: __cdecl FILEDIR::FILEDIR(void) __ptr64
??0FILEDIR@@QEAA@XZ
; public: __cdecl REAL_FAT_SA::REAL_FAT_SA(void) __ptr64
??0REAL_FAT_SA@@QEAA@XZ
; public: __cdecl ROOTDIR::ROOTDIR(void) __ptr64
??0ROOTDIR@@QEAA@XZ
; public: virtual __cdecl CLUSTER_CHAIN::~CLUSTER_CHAIN(void) __ptr64
??1CLUSTER_CHAIN@@UEAA@XZ
; public: virtual __cdecl EA_HEADER::~EA_HEADER(void) __ptr64
??1EA_HEADER@@UEAA@XZ
; public: virtual __cdecl EA_SET::~EA_SET(void) __ptr64
??1EA_SET@@UEAA@XZ
; public: virtual __cdecl FAT_DIRENT::~FAT_DIRENT(void) __ptr64
??1FAT_DIRENT@@UEAA@XZ
; public: virtual __cdecl FAT_SA::~FAT_SA(void) __ptr64
??1FAT_SA@@UEAA@XZ
; public: virtual __cdecl FILEDIR::~FILEDIR(void) __ptr64
??1FILEDIR@@UEAA@XZ
; public: virtual __cdecl REAL_FAT_SA::~REAL_FAT_SA(void) __ptr64
??1REAL_FAT_SA@@UEAA@XZ
; public: virtual __cdecl ROOTDIR::~ROOTDIR(void) __ptr64
??1ROOTDIR@@UEAA@XZ
; public: unsigned long __cdecl FAT::AllocChain(unsigned long,unsigned long * __ptr64) __ptr64
?AllocChain@FAT@@QEAAKKPEAK@Z
; public: void __cdecl FAT::FreeChain(unsigned long) __ptr64
?FreeChain@FAT@@QEAAXK@Z
; public: struct _EA * __ptr64 __cdecl EA_SET::GetEa(unsigned long,long * __ptr64,unsigned char * __ptr64) __ptr64
?GetEa@EA_SET@@QEAAPEAU_EA@@KPEAJPEAE@Z
; private: unsigned long __cdecl FAT::Index12(unsigned long)const  __ptr64
?Index12@FAT@@AEBAKK@Z
; public: unsigned char __cdecl REAL_FAT_SA::InitFATChkDirty(class LOG_IO_DP_DRIVE * __ptr64,class MESSAGE * __ptr64) __ptr64
?InitFATChkDirty@REAL_FAT_SA@@QEAAEPEAVLOG_IO_DP_DRIVE@@PEAVMESSAGE@@@Z
; public: unsigned char __cdecl CLUSTER_CHAIN::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class FAT_SA * __ptr64,class FAT const * __ptr64,unsigned long,unsigned long) __ptr64
?Initialize@CLUSTER_CHAIN@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@PEAVFAT_SA@@PEBVFAT@@KK@Z
; public: unsigned char __cdecl EA_HEADER::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class FAT_SA * __ptr64,class FAT const * __ptr64,unsigned long,unsigned long) __ptr64
?Initialize@EA_HEADER@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@PEAVFAT_SA@@PEBVFAT@@KK@Z
; public: unsigned char __cdecl EA_SET::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class FAT_SA * __ptr64,class FAT const * __ptr64,unsigned long,unsigned long) __ptr64
?Initialize@EA_SET@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@PEAVFAT_SA@@PEBVFAT@@KK@Z
; public: unsigned char __cdecl FAT_DIRENT::Initialize(void * __ptr64) __ptr64
?Initialize@FAT_DIRENT@@QEAAEPEAX@Z
; public: unsigned char __cdecl FAT_DIRENT::Initialize(void * __ptr64,unsigned char) __ptr64
?Initialize@FAT_DIRENT@@QEAAEPEAXE@Z
; public: unsigned char __cdecl FILEDIR::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class FAT_SA * __ptr64,class FAT const * __ptr64,unsigned long) __ptr64
?Initialize@FILEDIR@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@PEAVFAT_SA@@PEBVFAT@@K@Z
; public: virtual unsigned char __cdecl REAL_FAT_SA::Initialize(class LOG_IO_DP_DRIVE * __ptr64,class MESSAGE * __ptr64,unsigned char) __ptr64
?Initialize@REAL_FAT_SA@@UEAAEPEAVLOG_IO_DP_DRIVE@@PEAVMESSAGE@@E@Z
; public: unsigned char __cdecl ROOTDIR::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,unsigned long,long) __ptr64
?Initialize@ROOTDIR@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@KJ@Z
; public: unsigned char __cdecl FAT_DIRENT::IsValidCreationTime(void)const  __ptr64
?IsValidCreationTime@FAT_DIRENT@@QEBAEXZ
; public: unsigned char __cdecl FAT_DIRENT::IsValidLastAccessTime(void)const  __ptr64
?IsValidLastAccessTime@FAT_DIRENT@@QEBAEXZ
; public: unsigned char __cdecl FAT_DIRENT::IsValidLastWriteTime(void)const  __ptr64
?IsValidLastWriteTime@FAT_DIRENT@@QEBAEXZ
; public: unsigned long __cdecl FAT::QueryAllocatedClusters(void)const  __ptr64
?QueryAllocatedClusters@FAT@@QEBAKXZ
; public: unsigned char __cdecl FAT_SA::QueryCensusAndRelocate(struct _CENSUS_REPORT * __ptr64,class INTSTACK * __ptr64,unsigned char * __ptr64) __ptr64
?QueryCensusAndRelocate@FAT_SA@@QEAAEPEAU_CENSUS_REPORT@@PEAVINTSTACK@@PEAE@Z
; public: unsigned char __cdecl FAT_DIRENT::QueryCreationTime(union _LARGE_INTEGER * __ptr64)const  __ptr64
?QueryCreationTime@FAT_DIRENT@@QEBAEPEAT_LARGE_INTEGER@@@Z
; public: unsigned short __cdecl EA_HEADER::QueryEaSetClusterNumber(unsigned short)const  __ptr64
?QueryEaSetClusterNumber@EA_HEADER@@QEBAGG@Z
; public: unsigned long __cdecl FAT_SA::QueryFileStartingCluster(class WSTRING const * __ptr64,class HMEM * __ptr64,class FATDIR * __ptr64 * __ptr64,unsigned char * __ptr64,class FAT_DIRENT * __ptr64) __ptr64
?QueryFileStartingCluster@FAT_SA@@QEAAKPEBVWSTRING@@PEAVHMEM@@PEAPEAVFATDIR@@PEAEPEAVFAT_DIRENT@@@Z
; public: unsigned long __cdecl REAL_FAT_SA::QueryFreeSectors(void)const  __ptr64
?QueryFreeSectors@REAL_FAT_SA@@QEBAKXZ
; public: unsigned char __cdecl FAT_DIRENT::QueryLastAccessTime(union _LARGE_INTEGER * __ptr64)const  __ptr64
?QueryLastAccessTime@FAT_DIRENT@@QEBAEPEAT_LARGE_INTEGER@@@Z
; public: unsigned char __cdecl FAT_DIRENT::QueryLastWriteTime(union _LARGE_INTEGER * __ptr64)const  __ptr64
?QueryLastWriteTime@FAT_DIRENT@@QEBAEPEAT_LARGE_INTEGER@@@Z
; public: unsigned long __cdecl FAT::QueryLengthOfChain(unsigned long,unsigned long * __ptr64)const  __ptr64
?QueryLengthOfChain@FAT@@QEBAKKPEAK@Z
; public: unsigned char __cdecl FATDIR::QueryLongName(long,class WSTRING * __ptr64) __ptr64
?QueryLongName@FATDIR@@QEAAEJPEAVWSTRING@@@Z
; public: unsigned char __cdecl FAT_DIRENT::QueryName(class WSTRING * __ptr64)const  __ptr64
?QueryName@FAT_DIRENT@@QEBAEPEAVWSTRING@@@Z
; public: unsigned long __cdecl FAT::QueryNthCluster(unsigned long,unsigned long)const  __ptr64
?QueryNthCluster@FAT@@QEBAKKK@Z
; public: virtual unsigned char __cdecl CLUSTER_CHAIN::Read(void) __ptr64
?Read@CLUSTER_CHAIN@@UEAAEXZ
; public: virtual unsigned char __cdecl EA_SET::Read(void) __ptr64
?Read@EA_SET@@UEAAEXZ
; public: virtual unsigned char __cdecl REAL_FAT_SA::Read(class MESSAGE * __ptr64) __ptr64
?Read@REAL_FAT_SA@@UEAAEPEAVMESSAGE@@@Z
; public: void * __ptr64 __cdecl FATDIR::SearchForDirEntry(class WSTRING const * __ptr64) __ptr64
?SearchForDirEntry@FATDIR@@QEAAPEAXPEBVWSTRING@@@Z
; private: void __cdecl FAT::Set12(unsigned long,unsigned long) __ptr64
?Set12@FAT@@AEAAXKK@Z
; public: virtual unsigned char __cdecl CLUSTER_CHAIN::Write(void) __ptr64
?Write@CLUSTER_CHAIN@@UEAAEXZ
Chkdsk
ChkdskEx
Format
FormatEx
Recover
