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