; 
; Exports of file ifsutil.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY ifsutil.dll
EXPORTS
; public: __thiscall CANNED_SECURITY::CANNED_SECURITY(void)
??0CANNED_SECURITY@@QAE@XZ
; public: __thiscall DIGRAPH::DIGRAPH(void)
??0DIGRAPH@@QAE@XZ
; public: __thiscall DIGRAPH_EDGE::DIGRAPH_EDGE(void)
??0DIGRAPH_EDGE@@QAE@XZ
; public: __thiscall DP_DRIVE::DP_DRIVE(void)
??0DP_DRIVE@@QAE@XZ
; public: __thiscall INTSTACK::INTSTACK(void)
??0INTSTACK@@QAE@XZ
; public: __thiscall LOG_IO_DP_DRIVE::LOG_IO_DP_DRIVE(void)
??0LOG_IO_DP_DRIVE@@QAE@XZ
; public: __thiscall MOUNT_POINT_MAP::MOUNT_POINT_MAP(void)
??0MOUNT_POINT_MAP@@QAE@XZ
; public: __thiscall MOUNT_POINT_TUPLE::MOUNT_POINT_TUPLE(void)
??0MOUNT_POINT_TUPLE@@QAE@XZ
; public: __thiscall NUMBER_SET::NUMBER_SET(void)
??0NUMBER_SET@@QAE@XZ
; public: __thiscall READ_CACHE::READ_CACHE(void)
??0READ_CACHE@@QAE@XZ
; public: __thiscall READ_WRITE_CACHE::READ_WRITE_CACHE(void)
??0READ_WRITE_CACHE@@QAE@XZ
; public: __thiscall SECRUN::SECRUN(void)
??0SECRUN@@QAE@XZ
; private: __thiscall SNAPSHOT::SNAPSHOT(void)
??0SNAPSHOT@@AAE@XZ
; public: __thiscall SPARSE_SET::SPARSE_SET(void)
??0SPARSE_SET@@QAE@XZ
; protected: __thiscall SUPERAREA::SUPERAREA(void)
??0SUPERAREA@@IAE@XZ
; public: __thiscall TLINK::TLINK(void)
??0TLINK@@QAE@XZ
; protected: __thiscall VOL_LIODPDRV::VOL_LIODPDRV(void)
??0VOL_LIODPDRV@@IAE@XZ
; public: virtual __thiscall CANNED_SECURITY::~CANNED_SECURITY(void)
??1CANNED_SECURITY@@UAE@XZ
; public: virtual __thiscall DIGRAPH::~DIGRAPH(void)
??1DIGRAPH@@UAE@XZ
; public: virtual __thiscall DP_DRIVE::~DP_DRIVE(void)
??1DP_DRIVE@@UAE@XZ
; public: virtual __thiscall INTSTACK::~INTSTACK(void)
??1INTSTACK@@UAE@XZ
; public: virtual __thiscall LOG_IO_DP_DRIVE::~LOG_IO_DP_DRIVE(void)
??1LOG_IO_DP_DRIVE@@UAE@XZ
; public: virtual __thiscall MOUNT_POINT_MAP::~MOUNT_POINT_MAP(void)
??1MOUNT_POINT_MAP@@UAE@XZ
; public: virtual __thiscall NUMBER_SET::~NUMBER_SET(void)
??1NUMBER_SET@@UAE@XZ
; public: virtual __thiscall SECRUN::~SECRUN(void)
??1SECRUN@@UAE@XZ
; private: virtual __thiscall SNAPSHOT::~SNAPSHOT(void)
??1SNAPSHOT@@EAE@XZ
; public: virtual __thiscall SPARSE_SET::~SPARSE_SET(void)
??1SPARSE_SET@@UAE@XZ
; public: virtual __thiscall SUPERAREA::~SUPERAREA(void)
??1SUPERAREA@@UAE@XZ
; public: virtual __thiscall TLINK::~TLINK(void)
??1TLINK@@UAE@XZ
; public: virtual __thiscall VOL_LIODPDRV::~VOL_LIODPDRV(void)
??1VOL_LIODPDRV@@UAE@XZ
; public: unsigned char __thiscall NUMBER_SET::Add(class NUMBER_SET const *)
?Add@NUMBER_SET@@QAEEPBV1@@Z
; public: unsigned char __thiscall NUMBER_SET::Add(class BIG_INT,class BIG_INT)
?Add@NUMBER_SET@@QAEEVBIG_INT@@0@Z
; public: unsigned char __thiscall NUMBER_SET::Add(class BIG_INT)
?Add@NUMBER_SET@@QAEEVBIG_INT@@@Z
; public: unsigned char __thiscall MOUNT_POINT_MAP::AddDriveName(class WSTRING *,class WSTRING *)
?AddDriveName@MOUNT_POINT_MAP@@QAEEPAVWSTRING@@0@Z
; public: unsigned char __thiscall DIGRAPH::AddEdge(unsigned long,unsigned long)
?AddEdge@DIGRAPH@@QAEEKK@Z
; public: static unsigned char __stdcall AUTOREG::AddEntry(class WSTRING const *)
?AddEntry@AUTOREG@@SGEPBVWSTRING@@@Z
; public: unsigned char __thiscall NUMBER_SET::AddNext(class BIG_INT)
?AddNext@NUMBER_SET@@QAEEVBIG_INT@@@Z
; public: unsigned char __thiscall NUMBER_SET::AddStart(class BIG_INT)
?AddStart@NUMBER_SET@@QAEEVBIG_INT@@@Z
; public: unsigned char __thiscall MOUNT_POINT_MAP::AddVolumeName(class WSTRING *,class WSTRING *)
?AddVolumeName@MOUNT_POINT_MAP@@QAEEPAVWSTRING@@0@Z
; public: unsigned char __thiscall NUMBER_SET::CheckAndAdd(class BIG_INT,unsigned char *)
?CheckAndAdd@NUMBER_SET@@QAEEVBIG_INT@@PAE@Z
; public: unsigned char __thiscall SPARSE_SET::CheckAndAdd(class BIG_INT,unsigned char *)
?CheckAndAdd@SPARSE_SET@@QAEEVBIG_INT@@PAE@Z
; public: unsigned char __thiscall NUMBER_SET::CheckAndRemove(class BIG_INT,unsigned char *)
?CheckAndRemove@NUMBER_SET@@QAEEVBIG_INT@@PAE@Z
; public: unsigned char __thiscall SPARSE_SET::CheckAndRemove(class BIG_INT,unsigned char *)
?CheckAndRemove@SPARSE_SET@@QAEEVBIG_INT@@PAE@Z
; public: unsigned char __thiscall SNAPSHOT::CheckSnapshotPresence(void)
?CheckSnapshotPresence@SNAPSHOT@@QAEEXZ
; public: static unsigned char __stdcall IFS_SYSTEM::CheckValidSecurityDescriptor(unsigned long,struct _SECURITY_DESCRIPTOR *)
?CheckValidSecurityDescriptor@IFS_SYSTEM@@SGEKPAU_SECURITY_DESCRIPTOR@@@Z
; public: unsigned char __thiscall VOL_LIODPDRV::ChkDsk(enum FIX_LEVEL,class MESSAGE *,unsigned long,unsigned long,unsigned short,unsigned long *,class WSTRING const *)
?ChkDsk@VOL_LIODPDRV@@QAEEW4FIX_LEVEL@@PAVMESSAGE@@KKGPAKPBVWSTRING@@@Z
; public: void __thiscall DP_DRIVE::CloseDriveHandle(void)
?CloseDriveHandle@DP_DRIVE@@QAEXXZ
; public: static unsigned long __stdcall SUPERAREA::ComputeVolId(unsigned long)
?ComputeVolId@SUPERAREA@@SGKK@Z
; public: static unsigned char __stdcall AUTOREG::DeleteEntry(class WSTRING const *,class WSTRING const *)
?DeleteEntry@AUTOREG@@SGEPBVWSTRING@@0@Z
; public: static unsigned char __stdcall AUTOREG::DeleteEntry(class WSTRING const *,unsigned char)
?DeleteEntry@AUTOREG@@SGEPBVWSTRING@@E@Z
; int __stdcall DiskCopyMainLoop(class WSTRING const *,class WSTRING const *,class WSTRING const *,class WSTRING const *,unsigned char,class MESSAGE *,class MESSAGE *)
?DiskCopyMainLoop@@YGHPBVWSTRING@@000EPAVMESSAGE@@1@Z
; public: unsigned char __thiscall IO_DP_DRIVE::DismountAndLock(void)
?DismountAndLock@IO_DP_DRIVE@@QAEEXZ
; public: static unsigned char __stdcall IFS_SYSTEM::DismountVolume(class WSTRING const *)
?DismountVolume@IFS_SYSTEM@@SGEPBVWSTRING@@@Z
; public: unsigned char __thiscall NUMBER_SET::DoesIntersectSet(class BIG_INT,class BIG_INT)const 
?DoesIntersectSet@NUMBER_SET@@QBEEVBIG_INT@@0@Z
; public: static unsigned char __stdcall IFS_SYSTEM::DosDriveNameToNtDriveName(class WSTRING const *,class WSTRING *)
?DosDriveNameToNtDriveName@IFS_SYSTEM@@SGEPBVWSTRING@@PAV2@@Z
; public: void __thiscall SPARSE_SET::DumpHashTable(void)
?DumpHashTable@SPARSE_SET@@QAEXXZ
; public: unsigned char __thiscall DIGRAPH::EliminateCycles(class CONTAINER *,unsigned char *)
?EliminateCycles@DIGRAPH@@QAEEPAVCONTAINER@@PAE@Z
; public: static unsigned char __stdcall IFS_SYSTEM::EnableFileSystem(class WSTRING const *)
?EnableFileSystem@IFS_SYSTEM@@SGEPBVWSTRING@@@Z
; public: static unsigned char __stdcall IFS_SYSTEM::EnableVolumeCompression(class WSTRING const *)
?EnableVolumeCompression@IFS_SYSTEM@@SGEPBVWSTRING@@@Z
; public: static unsigned char __stdcall IFS_SYSTEM::EnableVolumeUpgrade(class WSTRING const *)
?EnableVolumeUpgrade@IFS_SYSTEM@@SGEPBVWSTRING@@@Z
; public: static unsigned char __stdcall IFS_SYSTEM::FileSetAttributes(class WSTRING const *,unsigned long,unsigned long *)
?FileSetAttributes@IFS_SYSTEM@@SGEPBVWSTRING@@KPAK@Z
; public: unsigned char __thiscall IO_DP_DRIVE::FlushCache(void)
?FlushCache@IO_DP_DRIVE@@QAEEXZ
; public: unsigned char __thiscall VOL_LIODPDRV::ForceAutochk(unsigned char,unsigned long,unsigned long,unsigned short,class WSTRING const *)
?ForceAutochk@VOL_LIODPDRV@@QAEEEKKGPBVWSTRING@@@Z
; public: enum FORMAT_ERROR_CODE  __thiscall VOL_LIODPDRV::Format(class WSTRING const *,class MESSAGE *,unsigned long,unsigned long,unsigned long)
?Format@VOL_LIODPDRV@@QAE?AW4FORMAT_ERROR_CODE@@PBVWSTRING@@PAVMESSAGE@@KKK@Z
; public: static long __stdcall SUPERAREA::GenerateLabelNotification(class WSTRING const *,class WSTRING *,struct _FILE_FS_SIZE_INFORMATION *,struct _FILE_FS_VOLUME_INFORMATION *)
?GenerateLabelNotification@SUPERAREA@@SGJPBVWSTRING@@PAV2@PAU_FILE_FS_SIZE_INFORMATION@@PAU_FILE_FS_VOLUME_INFORMATION@@@Z
; public: unsigned char __thiscall MOUNT_POINT_MAP::GetAt(unsigned long,class WSTRING *,class WSTRING *)
?GetAt@MOUNT_POINT_MAP@@QAEEKPAVWSTRING@@0@Z
; public: void * __thiscall TLINK::GetBuffer(void *)
?GetBuffer@TLINK@@QAEPAXPAX@Z
; public: static class CANNED_SECURITY * __stdcall IFS_SYSTEM::GetCannedSecurity(void)
?GetCannedSecurity@IFS_SYSTEM@@SGPAVCANNED_SECURITY@@XZ
; public: void * __thiscall CANNED_SECURITY::GetCannedSecurityDescriptor(enum _CANNED_SECURITY_TYPE,unsigned long *)
?GetCannedSecurityDescriptor@CANNED_SECURITY@@QAEPAXW4_CANNED_SECURITY_TYPE@@PAK@Z
; public: class BIG_INT & __thiscall TLINK::GetData(unsigned short)
?GetData@TLINK@@QAEAAVBIG_INT@@G@Z
; public: class BIG_INT & __thiscall TLINK::GetData(void *)
?GetData@TLINK@@QAEAAVBIG_INT@@PAX@Z
; public: class IO_DP_DRIVE * __thiscall SECRUN::GetDrive(void)
?GetDrive@SECRUN@@QAEPAVIO_DP_DRIVE@@XZ
; public: class IO_DP_DRIVE * __thiscall SUPERAREA::GetDrive(void)
?GetDrive@SUPERAREA@@QAEPAVIO_DP_DRIVE@@XZ
; public: void * __thiscall TLINK::GetFirst(void)
?GetFirst@TLINK@@QAEPAXXZ
; public: class MESSAGE * __thiscall IO_DP_DRIVE::GetMessageW(void)
?GetMessageW@IO_DP_DRIVE@@QAEPAVMESSAGE@@XZ
; public: class MESSAGE * __thiscall SUPERAREA::GetMessageW(void)
?GetMessageW@SUPERAREA@@QAEPAVMESSAGE@@XZ
; public: void * __thiscall TLINK::GetNext(void *)
?GetNext@TLINK@@QAEPAXPAX@Z
; public: class BIG_INT & __thiscall TLINK::GetNextDataSlot(void)
?GetNextDataSlot@TLINK@@QAEAAVBIG_INT@@XZ
; public: unsigned short * __thiscall SNAPSHOT::GetSnapshotGlobalDeviceName(void)
?GetSnapshotGlobalDeviceName@SNAPSHOT@@QAEPAGXZ
; public: unsigned short * __thiscall SNAPSHOT::GetSnapshotNtDeviceName(void)
?GetSnapshotNtDeviceName@SNAPSHOT@@QAEPAGXZ
; public: void * __thiscall TLINK::GetSortedFirst(void)
?GetSortedFirst@TLINK@@QAEPAXXZ
; public: void * __thiscall TLINK::GetSortedNext(void *)
?GetSortedNext@TLINK@@QAEPAXPAX@Z
; public: static unsigned char __stdcall SNAPSHOT::GetVolumeSnapshot(class WSTRING *,class SNAPSHOT * *)
?GetVolumeSnapshot@SNAPSHOT@@SGEPAVWSTRING@@PAPAV1@@Z
; public: unsigned char __thiscall CANNED_SECURITY::Initialize(void)
?Initialize@CANNED_SECURITY@@QAEEXZ
; public: unsigned char __thiscall DIGRAPH::Initialize(unsigned long)
?Initialize@DIGRAPH@@QAEEK@Z
; public: unsigned char __thiscall DP_DRIVE::Initialize(class WSTRING const *,class WSTRING const *,class MESSAGE *,unsigned char,unsigned char)
?Initialize@DP_DRIVE@@QAEEPBVWSTRING@@0PAVMESSAGE@@EE@Z
; public: unsigned char __thiscall DP_DRIVE::Initialize(class WSTRING const *,class MESSAGE *,unsigned char,unsigned char,unsigned short)
?Initialize@DP_DRIVE@@QAEEPBVWSTRING@@PAVMESSAGE@@EEG@Z
; public: unsigned char __thiscall INTSTACK::Initialize(void)
?Initialize@INTSTACK@@QAEEXZ
; public: unsigned char __thiscall LOG_IO_DP_DRIVE::Initialize(class WSTRING const *,class WSTRING const *,class MESSAGE *,unsigned char)
?Initialize@LOG_IO_DP_DRIVE@@QAEEPBVWSTRING@@0PAVMESSAGE@@E@Z
; public: unsigned char __thiscall LOG_IO_DP_DRIVE::Initialize(class WSTRING const *,class MESSAGE *,unsigned char,unsigned short)
?Initialize@LOG_IO_DP_DRIVE@@QAEEPBVWSTRING@@PAVMESSAGE@@EG@Z
; public: unsigned char __thiscall MOUNT_POINT_MAP::Initialize(void)
?Initialize@MOUNT_POINT_MAP@@QAEEXZ
; public: unsigned char __thiscall NUMBER_SET::Initialize(void)
?Initialize@NUMBER_SET@@QAEEXZ
; public: unsigned char __thiscall READ_CACHE::Initialize(class IO_DP_DRIVE *,unsigned long)
?Initialize@READ_CACHE@@QAEEPAVIO_DP_DRIVE@@K@Z
; public: unsigned char __thiscall READ_WRITE_CACHE::Initialize(class IO_DP_DRIVE *,unsigned long)
?Initialize@READ_WRITE_CACHE@@QAEEPAVIO_DP_DRIVE@@K@Z
; public: unsigned char __thiscall SECRUN::Initialize(class MEM *,class IO_DP_DRIVE *,class BIG_INT,unsigned long)
?Initialize@SECRUN@@QAEEPAVMEM@@PAVIO_DP_DRIVE@@VBIG_INT@@K@Z
; private: long __thiscall SNAPSHOT::Initialize(unsigned short *)
?Initialize@SNAPSHOT@@AAEJPAG@Z
; public: unsigned char __thiscall SPARSE_SET::Initialize(void)
?Initialize@SPARSE_SET@@QAEEXZ
; protected: unsigned char __thiscall SUPERAREA::Initialize(class MEM *,class LOG_IO_DP_DRIVE *,unsigned long,class MESSAGE *)
?Initialize@SUPERAREA@@IAEEPAVMEM@@PAVLOG_IO_DP_DRIVE@@KPAVMESSAGE@@@Z
; public: unsigned char __thiscall TLINK::Initialize(unsigned short)
?Initialize@TLINK@@QAEEG@Z
; protected: enum FORMAT_ERROR_CODE  __thiscall VOL_LIODPDRV::Initialize(class WSTRING const *,class SUPERAREA *,class MESSAGE *,unsigned char,unsigned char,enum _MEDIA_TYPE,unsigned short,unsigned char)
?Initialize@VOL_LIODPDRV@@IAE?AW4FORMAT_ERROR_CODE@@PBVWSTRING@@PAVSUPERAREA@@PAVMESSAGE@@EEW4_MEDIA_TYPE@@GE@Z
; protected: unsigned char __thiscall VOL_LIODPDRV::Initialize(class WSTRING const *,class WSTRING const *,class SUPERAREA *,class MESSAGE *,unsigned char)
?Initialize@VOL_LIODPDRV@@IAEEPBVWSTRING@@0PAVSUPERAREA@@PAVMESSAGE@@E@Z
; public: unsigned char __thiscall IO_DP_DRIVE::InvalidateVolume(void)
?InvalidateVolume@IO_DP_DRIVE@@QAEEXZ
; public: unsigned char __thiscall DP_DRIVE::IsATformat(void)const 
?IsATformat@DP_DRIVE@@QBEEXZ
; public: static unsigned char __stdcall IFS_SYSTEM::IsArcSystemPartition(class WSTRING const *,unsigned char *)
?IsArcSystemPartition@IFS_SYSTEM@@SGEPBVWSTRING@@PAE@Z
; public: static unsigned char __stdcall AUTOREG::IsEntryPresent(class WSTRING const *,class WSTRING const *)
?IsEntryPresent@AUTOREG@@SGEPBVWSTRING@@0@Z
; public: static unsigned char __stdcall AUTOREG::IsEntryPresent(class WSTRING const *)
?IsEntryPresent@AUTOREG@@SGEPBVWSTRING@@@Z
; public: static unsigned char __stdcall IFS_SYSTEM::IsFileSystemEnabled(class WSTRING const *,unsigned char *)
?IsFileSystemEnabled@IFS_SYSTEM@@SGEPBVWSTRING@@PAE@Z
; public: static unsigned char __stdcall AUTOREG::IsFrontEndPresent(class WSTRING const *,class WSTRING const *)
?IsFrontEndPresent@AUTOREG@@SGEPBVWSTRING@@0@Z
; public: static unsigned char __stdcall IFS_SYSTEM::IsThisNtfs(class BIG_INT,unsigned long,void *)
?IsThisNtfs@IFS_SYSTEM@@SGEVBIG_INT@@KPAX@Z
; public: static unsigned char __stdcall IFS_SYSTEM::IsVolumeDirty(class WSTRING *,unsigned char *)
?IsVolumeDirty@IFS_SYSTEM@@SGEPAVWSTRING@@PAE@Z
; public: unsigned char __thiscall IO_DP_DRIVE::Lock(void)
?Lock@IO_DP_DRIVE@@QAEEXZ
; public: class BIG_INT  __thiscall INTSTACK::Look(unsigned long)const 
?Look@INTSTACK@@QBE?AVBIG_INT@@K@Z
; public: static unsigned char __stdcall IFS_SYSTEM::NtDriveNameToDosDriveName(class WSTRING const *,class WSTRING *)
?NtDriveNameToDosDriveName@IFS_SYSTEM@@SGEPBVWSTRING@@PAV2@@Z
; public: void __thiscall INTSTACK::Pop(unsigned long)
?Pop@INTSTACK@@QAEXK@Z
; public: unsigned char __thiscall INTSTACK::Push(class BIG_INT)
?Push@INTSTACK@@QAEEVBIG_INT@@@Z
; public: static unsigned char __stdcall AUTOREG::PushEntry(class WSTRING const *)
?PushEntry@AUTOREG@@SGEPBVWSTRING@@@Z
; public: static unsigned char __stdcall VOL_LIODPDRV::QueryAutochkTimeOut(unsigned long *)
?QueryAutochkTimeOut@VOL_LIODPDRV@@SGEPAK@Z
; public: static unsigned char __stdcall IFS_SYSTEM::QueryCanonicalNtDriveName(class WSTRING const *,class WSTRING *)
?QueryCanonicalNtDriveName@IFS_SYSTEM@@SGEPBVWSTRING@@PAV2@@Z
; public: unsigned char __thiscall DIGRAPH::QueryChildren(unsigned long,class NUMBER_SET *)const 
?QueryChildren@DIGRAPH@@QBEEKPAVNUMBER_SET@@@Z
; public: void __thiscall BIG_INT::QueryCompressedInteger(unsigned char *,unsigned char *)const 
?QueryCompressedInteger@BIG_INT@@QBEXPAE0@Z
; public: unsigned char __thiscall NUMBER_SET::QueryContainingRange(class BIG_INT,class BIG_INT *,class BIG_INT *)const 
?QueryContainingRange@NUMBER_SET@@QBEEVBIG_INT@@PAV2@1@Z
; public: void __thiscall NUMBER_SET::QueryDisjointRange(unsigned long,class BIG_INT *,class BIG_INT *)const 
?QueryDisjointRange@NUMBER_SET@@QBEXKPAVBIG_INT@@0@Z
; public: void * __thiscall TLINK::QueryDisjointRangeAndAssignBuffer(class BIG_INT *,unsigned short *,unsigned short *,void *,unsigned long,void *)
?QueryDisjointRangeAndAssignBuffer@TLINK@@QAEPAXPAVBIG_INT@@PAG1PAXK2@Z
; public: void * __thiscall DP_DRIVE::QueryDriveHandle(void)const 
?QueryDriveHandle@DP_DRIVE@@QBEPAXXZ
; public: unsigned char __thiscall MOUNT_POINT_MAP::QueryDriveName(class WSTRING *,class WSTRING *)
?QueryDriveName@MOUNT_POINT_MAP@@QAEEPAVWSTRING@@0@Z
; public: enum DRIVE_TYPE  __thiscall DP_DRIVE::QueryDriveType(void)const 
?QueryDriveType@DP_DRIVE@@QBE?AW4DRIVE_TYPE@@XZ
; public: static unsigned char __stdcall IFS_SYSTEM::QueryFileSystemName(class WSTRING const *,class WSTRING *,long *,class WSTRING *)
?QueryFileSystemName@IFS_SYSTEM@@SGEPBVWSTRING@@PAV2@PAJ1@Z
; public: static unsigned char __stdcall IFS_SYSTEM::QueryFreeDiskSpace(class WSTRING const *,class BIG_INT *)
?QueryFreeDiskSpace@IFS_SYSTEM@@SGEPBVWSTRING@@PAVBIG_INT@@@Z
; unsigned long __stdcall QueryMachineUniqueToken(void)
?QueryMachineUniqueToken@@YGKXZ
; public: unsigned char __thiscall DP_DRIVE::QueryMediaByte(void)const 
?QueryMediaByte@DP_DRIVE@@QBEEXZ
; public: unsigned short __thiscall TLINK::QueryMemberCount(void)const 
?QueryMemberCount@TLINK@@QBEGXZ
; public: static unsigned char __stdcall DP_DRIVE::QueryMrwSupport(void *)
?QueryMrwSupport@DP_DRIVE@@SGEPAX@Z
; public: static long __stdcall DP_DRIVE::QueryNtfsSupportInfo(void *,unsigned char *)
?QueryNtfsSupportInfo@DP_DRIVE@@SGJPAXPAE@Z
; public: static void __stdcall IFS_SYSTEM::QueryNtfsTime(union _LARGE_INTEGER *)
?QueryNtfsTime@IFS_SYSTEM@@SGXPAT_LARGE_INTEGER@@@Z
; public: static unsigned char __stdcall IFS_SYSTEM::QueryNtfsVersion(unsigned char *,unsigned char *,class LOG_IO_DP_DRIVE *,void *)
?QueryNtfsVersion@IFS_SYSTEM@@SGEPAE0PAVLOG_IO_DP_DRIVE@@PAX@Z
; public: class BIG_INT  __thiscall NUMBER_SET::QueryNumber(class BIG_INT)const 
?QueryNumber@NUMBER_SET@@QBE?AVBIG_INT@@V2@@Z
; public: static unsigned long __stdcall IFS_SYSTEM::QueryPageSize(void)
?QueryPageSize@IFS_SYSTEM@@SGKXZ
; public: unsigned char __thiscall DIGRAPH::QueryParents(unsigned long,class NUMBER_SET *)const 
?QueryParents@DIGRAPH@@QBEEKPAVNUMBER_SET@@@Z
; public: unsigned char __thiscall DIGRAPH::QueryParentsWithChildren(class NUMBER_SET *,unsigned long)const 
?QueryParentsWithChildren@DIGRAPH@@QBEEPAVNUMBER_SET@@K@Z
; public: unsigned long __thiscall DP_DRIVE::QueryPhysicalSectorSize(void)const 
?QueryPhysicalSectorSize@DP_DRIVE@@QBEKXZ
; public: enum _MEDIA_TYPE  __thiscall DP_DRIVE::QueryRecommendedMediaType(void)const 
?QueryRecommendedMediaType@DP_DRIVE@@QBE?AW4_MEDIA_TYPE@@XZ
; public: virtual unsigned long __thiscall DP_DRIVE::QuerySectorSize(void)const 
?QuerySectorSize@DP_DRIVE@@UBEKXZ
; public: virtual class BIG_INT  __thiscall DP_DRIVE::QuerySectors(void)const 
?QuerySectors@DP_DRIVE@@UBE?AVBIG_INT@@XZ
; public: unsigned short __thiscall TLINK::QuerySize(void)const 
?QuerySize@TLINK@@QBEGXZ
; public: unsigned char __thiscall MOUNT_POINT_MAP::QueryVolumeName(class WSTRING *,class WSTRING *)
?QueryVolumeName@MOUNT_POINT_MAP@@QAEEPAVWSTRING@@0@Z
; public: unsigned char __thiscall IO_DP_DRIVE::Read(class BIG_INT,unsigned long,void *)
?Read@IO_DP_DRIVE@@QAEEVBIG_INT@@KPAX@Z
; public: unsigned char __thiscall LOG_IO_DP_DRIVE::Read(class BIG_INT,unsigned long,void *)
?Read@LOG_IO_DP_DRIVE@@QAEEVBIG_INT@@KPAX@Z
; public: virtual unsigned char __thiscall SECRUN::Read(void)
?Read@SECRUN@@UAEEXZ
; public: unsigned char __thiscall VOL_LIODPDRV::Recover(class WSTRING const *,class MESSAGE *)
?Recover@VOL_LIODPDRV@@QAEEPBVWSTRING@@PAVMESSAGE@@@Z
; public: static unsigned char __stdcall SNAPSHOT::ReleaseVolumeSnapshot(class SNAPSHOT *)
?ReleaseVolumeSnapshot@SNAPSHOT@@SGEPAV1@@Z
; public: unsigned char __thiscall NUMBER_SET::Remove(class NUMBER_SET const *)
?Remove@NUMBER_SET@@QAEEPBV1@@Z
; public: unsigned char __thiscall NUMBER_SET::Remove(class BIG_INT,class BIG_INT)
?Remove@NUMBER_SET@@QAEEVBIG_INT@@0@Z
; public: unsigned char __thiscall NUMBER_SET::Remove(class BIG_INT)
?Remove@NUMBER_SET@@QAEEVBIG_INT@@@Z
; public: unsigned char __thiscall NUMBER_SET::RemoveAll(void)
?RemoveAll@NUMBER_SET@@QAEEXZ
; public: unsigned char __thiscall SPARSE_SET::RemoveAll(void)
?RemoveAll@SPARSE_SET@@QAEEXZ
; public: unsigned char __thiscall DIGRAPH::RemoveEdge(unsigned long,unsigned long)
?RemoveEdge@DIGRAPH@@QAEEKK@Z
; void __stdcall RestoreThreadExecutionState(long,unsigned long)
?RestoreThreadExecutionState@@YGXJK@Z
; public: unsigned char __thiscall INTSTACK::ReverseCopy(class INTSTACK *)
?ReverseCopy@INTSTACK@@QAEEPAV1@@Z
; public: unsigned char __thiscall DP_DRIVE::SendSonyMSFormatCmd(void)
?SendSonyMSFormatCmd@DP_DRIVE@@QAEEXZ
; public: unsigned char __thiscall DP_DRIVE::SendSonyMSInquiryCmd(struct SONY_MS_INQUIRY_DATA *)
?SendSonyMSInquiryCmd@DP_DRIVE@@QAEEPAUSONY_MS_INQUIRY_DATA@@@Z
; public: unsigned char __thiscall DP_DRIVE::SendSonyMSModeSenseCmd(struct SONY_MS_MODE_SENSE_DATA *)
?SendSonyMSModeSenseCmd@DP_DRIVE@@QAEEPAUSONY_MS_MODE_SENSE_DATA@@@Z
; public: unsigned char __thiscall DP_DRIVE::SendSonyMSRequestSenseCmd(struct _SENSE_DATA *)
?SendSonyMSRequestSenseCmd@DP_DRIVE@@QAEEPAU_SENSE_DATA@@@Z
; public: unsigned char __thiscall DP_DRIVE::SendSonyMSTestUnitReadyCmd(struct _SENSE_DATA *)
?SendSonyMSTestUnitReadyCmd@DP_DRIVE@@QAEEPAU_SENSE_DATA@@@Z
; public: void __thiscall BIG_INT::Set(unsigned char,unsigned char const *)
?Set@BIG_INT@@QAEXEPBE@Z
; public: static unsigned char __stdcall VOL_LIODPDRV::SetAutochkTimeOut(unsigned long)
?SetAutochkTimeOut@VOL_LIODPDRV@@SGEK@Z
; public: void __thiscall IO_DP_DRIVE::SetCache(class DRIVE_CACHE *)
?SetCache@IO_DP_DRIVE@@QAEXPAVDRIVE_CACHE@@@Z
; public: unsigned char __thiscall LOG_IO_DP_DRIVE::SetSystemId(unsigned char)
?SetSystemId@LOG_IO_DP_DRIVE@@QAEEE@Z
; public: unsigned char __thiscall VOL_LIODPDRV::SetVolumeLabelAndPrintFormatReport(class WSTRING const *,class MESSAGE *)
?SetVolumeLabelAndPrintFormatReport@VOL_LIODPDRV@@QAEEPBVWSTRING@@PAVMESSAGE@@@Z
; public: void __thiscall TLINK::ShellSort(void)
?ShellSort@TLINK@@QAEXXZ
; public: void __thiscall TLINK::Sort(void)
?Sort@TLINK@@QAEXXZ
; public: unsigned char __thiscall IO_DP_DRIVE::Verify(class BIG_INT,class BIG_INT)
?Verify@IO_DP_DRIVE@@QAEEVBIG_INT@@0@Z
; public: unsigned char __thiscall IO_DP_DRIVE::Verify(class BIG_INT,class BIG_INT,class NUMBER_SET *)
?Verify@IO_DP_DRIVE@@QAEEVBIG_INT@@0PAVNUMBER_SET@@@Z
; public: unsigned char __thiscall IO_DP_DRIVE::Write(class BIG_INT,unsigned long,void *)
?Write@IO_DP_DRIVE@@QAEEVBIG_INT@@KPAX@Z
; public: unsigned char __thiscall LOG_IO_DP_DRIVE::Write(class BIG_INT,unsigned long,void *)
?Write@LOG_IO_DP_DRIVE@@QAEEVBIG_INT@@KPAX@Z
; public: virtual unsigned char __thiscall SECRUN::Write(void)
?Write@SECRUN@@UAEEXZ
; public: static unsigned char __stdcall IFS_SYSTEM::WriteToFile(class WSTRING const *,void *,unsigned long,unsigned char)
?WriteToFile@IFS_SYSTEM@@SGEPBVWSTRING@@PAXKE@Z
