; 
; Exports of file ifsutil.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY ifsutil.dll
EXPORTS
; public: __cdecl CANNED_SECURITY::CANNED_SECURITY(void) __ptr64
??0CANNED_SECURITY@@QEAA@XZ
; public: __cdecl DIGRAPH::DIGRAPH(void) __ptr64
??0DIGRAPH@@QEAA@XZ
; public: __cdecl DIGRAPH_EDGE::DIGRAPH_EDGE(void) __ptr64
??0DIGRAPH_EDGE@@QEAA@XZ
; public: __cdecl DP_DRIVE::DP_DRIVE(void) __ptr64
??0DP_DRIVE@@QEAA@XZ
; public: __cdecl INTSTACK::INTSTACK(void) __ptr64
??0INTSTACK@@QEAA@XZ
; public: __cdecl LOG_IO_DP_DRIVE::LOG_IO_DP_DRIVE(void) __ptr64
??0LOG_IO_DP_DRIVE@@QEAA@XZ
; public: __cdecl MOUNT_POINT_MAP::MOUNT_POINT_MAP(void) __ptr64
??0MOUNT_POINT_MAP@@QEAA@XZ
; public: __cdecl MOUNT_POINT_TUPLE::MOUNT_POINT_TUPLE(void) __ptr64
??0MOUNT_POINT_TUPLE@@QEAA@XZ
; public: __cdecl NUMBER_SET::NUMBER_SET(void) __ptr64
??0NUMBER_SET@@QEAA@XZ
; public: __cdecl READ_CACHE::READ_CACHE(void) __ptr64
??0READ_CACHE@@QEAA@XZ
; public: __cdecl READ_WRITE_CACHE::READ_WRITE_CACHE(void) __ptr64
??0READ_WRITE_CACHE@@QEAA@XZ
; public: __cdecl SECRUN::SECRUN(void) __ptr64
??0SECRUN@@QEAA@XZ
; private: __cdecl SNAPSHOT::SNAPSHOT(void) __ptr64
??0SNAPSHOT@@AEAA@XZ
; public: __cdecl SPARSE_SET::SPARSE_SET(void) __ptr64
??0SPARSE_SET@@QEAA@XZ
; protected: __cdecl SUPERAREA::SUPERAREA(void) __ptr64
??0SUPERAREA@@IEAA@XZ
; public: __cdecl TLINK::TLINK(void) __ptr64
??0TLINK@@QEAA@XZ
; protected: __cdecl VOL_LIODPDRV::VOL_LIODPDRV(void) __ptr64
??0VOL_LIODPDRV@@IEAA@XZ
; public: virtual __cdecl CANNED_SECURITY::~CANNED_SECURITY(void) __ptr64
??1CANNED_SECURITY@@UEAA@XZ
; public: virtual __cdecl DIGRAPH::~DIGRAPH(void) __ptr64
??1DIGRAPH@@UEAA@XZ
; public: virtual __cdecl DP_DRIVE::~DP_DRIVE(void) __ptr64
??1DP_DRIVE@@UEAA@XZ
; public: virtual __cdecl INTSTACK::~INTSTACK(void) __ptr64
??1INTSTACK@@UEAA@XZ
; public: virtual __cdecl LOG_IO_DP_DRIVE::~LOG_IO_DP_DRIVE(void) __ptr64
??1LOG_IO_DP_DRIVE@@UEAA@XZ
; public: virtual __cdecl MOUNT_POINT_MAP::~MOUNT_POINT_MAP(void) __ptr64
??1MOUNT_POINT_MAP@@UEAA@XZ
; public: virtual __cdecl NUMBER_SET::~NUMBER_SET(void) __ptr64
??1NUMBER_SET@@UEAA@XZ
; public: virtual __cdecl SECRUN::~SECRUN(void) __ptr64
??1SECRUN@@UEAA@XZ
; private: virtual __cdecl SNAPSHOT::~SNAPSHOT(void) __ptr64
??1SNAPSHOT@@EEAA@XZ
; public: virtual __cdecl SPARSE_SET::~SPARSE_SET(void) __ptr64
??1SPARSE_SET@@UEAA@XZ
; public: virtual __cdecl SUPERAREA::~SUPERAREA(void) __ptr64
??1SUPERAREA@@UEAA@XZ
; public: virtual __cdecl TLINK::~TLINK(void) __ptr64
??1TLINK@@UEAA@XZ
; public: virtual __cdecl VOL_LIODPDRV::~VOL_LIODPDRV(void) __ptr64
??1VOL_LIODPDRV@@UEAA@XZ
; public: unsigned char __cdecl NUMBER_SET::Add(class NUMBER_SET const * __ptr64) __ptr64
?Add@NUMBER_SET@@QEAAEPEBV1@@Z
; public: unsigned char __cdecl NUMBER_SET::Add(class BIG_INT,class BIG_INT) __ptr64
?Add@NUMBER_SET@@QEAAEVBIG_INT@@0@Z
; public: unsigned char __cdecl NUMBER_SET::Add(class BIG_INT) __ptr64
?Add@NUMBER_SET@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl MOUNT_POINT_MAP::AddDriveName(class WSTRING * __ptr64,class WSTRING * __ptr64) __ptr64
?AddDriveName@MOUNT_POINT_MAP@@QEAAEPEAVWSTRING@@0@Z
; public: unsigned char __cdecl DIGRAPH::AddEdge(unsigned long,unsigned long) __ptr64
?AddEdge@DIGRAPH@@QEAAEKK@Z
; public: static unsigned char __cdecl AUTOREG::AddEntry(class WSTRING const * __ptr64)
?AddEntry@AUTOREG@@SAEPEBVWSTRING@@@Z
; public: unsigned char __cdecl NUMBER_SET::AddNext(class BIG_INT) __ptr64
?AddNext@NUMBER_SET@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl NUMBER_SET::AddStart(class BIG_INT) __ptr64
?AddStart@NUMBER_SET@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl MOUNT_POINT_MAP::AddVolumeName(class WSTRING * __ptr64,class WSTRING * __ptr64) __ptr64
?AddVolumeName@MOUNT_POINT_MAP@@QEAAEPEAVWSTRING@@0@Z
; public: unsigned char __cdecl NUMBER_SET::CheckAndAdd(class BIG_INT,unsigned char * __ptr64) __ptr64
?CheckAndAdd@NUMBER_SET@@QEAAEVBIG_INT@@PEAE@Z
; public: unsigned char __cdecl SPARSE_SET::CheckAndAdd(class BIG_INT,unsigned char * __ptr64) __ptr64
?CheckAndAdd@SPARSE_SET@@QEAAEVBIG_INT@@PEAE@Z
; public: unsigned char __cdecl NUMBER_SET::CheckAndRemove(class BIG_INT,unsigned char * __ptr64) __ptr64
?CheckAndRemove@NUMBER_SET@@QEAAEVBIG_INT@@PEAE@Z
; public: unsigned char __cdecl SPARSE_SET::CheckAndRemove(class BIG_INT,unsigned char * __ptr64) __ptr64
?CheckAndRemove@SPARSE_SET@@QEAAEVBIG_INT@@PEAE@Z
; public: unsigned char __cdecl SNAPSHOT::CheckSnapshotPresence(void) __ptr64
?CheckSnapshotPresence@SNAPSHOT@@QEAAEXZ
; public: static unsigned char __cdecl IFS_SYSTEM::CheckValidSecurityDescriptor(unsigned long,struct _SECURITY_DESCRIPTOR * __ptr64)
?CheckValidSecurityDescriptor@IFS_SYSTEM@@SAEKPEAU_SECURITY_DESCRIPTOR@@@Z
; public: unsigned char __cdecl VOL_LIODPDRV::ChkDsk(enum FIX_LEVEL,class MESSAGE * __ptr64,unsigned long,unsigned long,unsigned short,unsigned long * __ptr64,class WSTRING const * __ptr64) __ptr64
?ChkDsk@VOL_LIODPDRV@@QEAAEW4FIX_LEVEL@@PEAVMESSAGE@@KKGPEAKPEBVWSTRING@@@Z
; public: void __cdecl DP_DRIVE::CloseDriveHandle(void) __ptr64
?CloseDriveHandle@DP_DRIVE@@QEAAXXZ
; public: static unsigned long __cdecl SUPERAREA::ComputeVolId(unsigned long)
?ComputeVolId@SUPERAREA@@SAKK@Z
; public: static unsigned char __cdecl AUTOREG::DeleteEntry(class WSTRING const * __ptr64,class WSTRING const * __ptr64)
?DeleteEntry@AUTOREG@@SAEPEBVWSTRING@@0@Z
; public: static unsigned char __cdecl AUTOREG::DeleteEntry(class WSTRING const * __ptr64,unsigned char)
?DeleteEntry@AUTOREG@@SAEPEBVWSTRING@@E@Z
; int __cdecl DiskCopyMainLoop(class WSTRING const * __ptr64,class WSTRING const * __ptr64,class WSTRING const * __ptr64,class WSTRING const * __ptr64,unsigned char,class MESSAGE * __ptr64,class MESSAGE * __ptr64)
?DiskCopyMainLoop@@YAHPEBVWSTRING@@000EPEAVMESSAGE@@1@Z
; public: unsigned char __cdecl IO_DP_DRIVE::DismountAndLock(void) __ptr64
?DismountAndLock@IO_DP_DRIVE@@QEAAEXZ
; public: static unsigned char __cdecl IFS_SYSTEM::DismountVolume(class WSTRING const * __ptr64)
?DismountVolume@IFS_SYSTEM@@SAEPEBVWSTRING@@@Z
; public: unsigned char __cdecl NUMBER_SET::DoesIntersectSet(class BIG_INT,class BIG_INT)const  __ptr64
?DoesIntersectSet@NUMBER_SET@@QEBAEVBIG_INT@@0@Z
; public: static unsigned char __cdecl IFS_SYSTEM::DosDriveNameToNtDriveName(class WSTRING const * __ptr64,class WSTRING * __ptr64)
?DosDriveNameToNtDriveName@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAV2@@Z
; public: void __cdecl SPARSE_SET::DumpHashTable(void) __ptr64
?DumpHashTable@SPARSE_SET@@QEAAXXZ
; public: unsigned char __cdecl DIGRAPH::EliminateCycles(class CONTAINER * __ptr64,unsigned char * __ptr64) __ptr64
?EliminateCycles@DIGRAPH@@QEAAEPEAVCONTAINER@@PEAE@Z
; public: static unsigned char __cdecl IFS_SYSTEM::EnableFileSystem(class WSTRING const * __ptr64)
?EnableFileSystem@IFS_SYSTEM@@SAEPEBVWSTRING@@@Z
; public: static unsigned char __cdecl IFS_SYSTEM::EnableVolumeCompression(class WSTRING const * __ptr64)
?EnableVolumeCompression@IFS_SYSTEM@@SAEPEBVWSTRING@@@Z
; public: static unsigned char __cdecl IFS_SYSTEM::EnableVolumeUpgrade(class WSTRING const * __ptr64)
?EnableVolumeUpgrade@IFS_SYSTEM@@SAEPEBVWSTRING@@@Z
; public: static unsigned char __cdecl IFS_SYSTEM::FileSetAttributes(class WSTRING const * __ptr64,unsigned long,unsigned long * __ptr64)
?FileSetAttributes@IFS_SYSTEM@@SAEPEBVWSTRING@@KPEAK@Z
; public: unsigned char __cdecl IO_DP_DRIVE::FlushCache(void) __ptr64
?FlushCache@IO_DP_DRIVE@@QEAAEXZ
; public: unsigned char __cdecl VOL_LIODPDRV::ForceAutochk(unsigned char,unsigned long,unsigned long,unsigned short,class WSTRING const * __ptr64) __ptr64
?ForceAutochk@VOL_LIODPDRV@@QEAAEEKKGPEBVWSTRING@@@Z
; public: enum FORMAT_ERROR_CODE  __cdecl VOL_LIODPDRV::Format(class WSTRING const * __ptr64,class MESSAGE * __ptr64,unsigned long,unsigned long,unsigned long) __ptr64
?Format@VOL_LIODPDRV@@QEAA?AW4FORMAT_ERROR_CODE@@PEBVWSTRING@@PEAVMESSAGE@@KKK@Z
; public: static long __cdecl SUPERAREA::GenerateLabelNotification(class WSTRING const * __ptr64,class WSTRING * __ptr64,struct _FILE_FS_SIZE_INFORMATION * __ptr64,struct _FILE_FS_VOLUME_INFORMATION * __ptr64)
?GenerateLabelNotification@SUPERAREA@@SAJPEBVWSTRING@@PEAV2@PEAU_FILE_FS_SIZE_INFORMATION@@PEAU_FILE_FS_VOLUME_INFORMATION@@@Z
; public: unsigned char __cdecl MOUNT_POINT_MAP::GetAt(unsigned long,class WSTRING * __ptr64,class WSTRING * __ptr64) __ptr64
?GetAt@MOUNT_POINT_MAP@@QEAAEKPEAVWSTRING@@0@Z
; public: void * __ptr64 __cdecl TLINK::GetBuffer(void * __ptr64) __ptr64
?GetBuffer@TLINK@@QEAAPEAXPEAX@Z
; public: static class CANNED_SECURITY * __ptr64 __cdecl IFS_SYSTEM::GetCannedSecurity(void)
?GetCannedSecurity@IFS_SYSTEM@@SAPEAVCANNED_SECURITY@@XZ
; public: void * __ptr64 __cdecl CANNED_SECURITY::GetCannedSecurityDescriptor(enum _CANNED_SECURITY_TYPE,unsigned long * __ptr64) __ptr64
?GetCannedSecurityDescriptor@CANNED_SECURITY@@QEAAPEAXW4_CANNED_SECURITY_TYPE@@PEAK@Z
; public: class BIG_INT & __ptr64 __cdecl TLINK::GetData(unsigned short) __ptr64
?GetData@TLINK@@QEAAAEAVBIG_INT@@G@Z
; public: class BIG_INT & __ptr64 __cdecl TLINK::GetData(void * __ptr64) __ptr64
?GetData@TLINK@@QEAAAEAVBIG_INT@@PEAX@Z
; public: class IO_DP_DRIVE * __ptr64 __cdecl SECRUN::GetDrive(void) __ptr64
?GetDrive@SECRUN@@QEAAPEAVIO_DP_DRIVE@@XZ
; public: class IO_DP_DRIVE * __ptr64 __cdecl SUPERAREA::GetDrive(void) __ptr64
?GetDrive@SUPERAREA@@QEAAPEAVIO_DP_DRIVE@@XZ
; public: void * __ptr64 __cdecl TLINK::GetFirst(void) __ptr64
?GetFirst@TLINK@@QEAAPEAXXZ
; public: class MESSAGE * __ptr64 __cdecl IO_DP_DRIVE::GetMessageW(void) __ptr64
?GetMessageW@IO_DP_DRIVE@@QEAAPEAVMESSAGE@@XZ
; public: class MESSAGE * __ptr64 __cdecl SUPERAREA::GetMessageW(void) __ptr64
?GetMessageW@SUPERAREA@@QEAAPEAVMESSAGE@@XZ
; public: void * __ptr64 __cdecl TLINK::GetNext(void * __ptr64) __ptr64
?GetNext@TLINK@@QEAAPEAXPEAX@Z
; public: class BIG_INT & __ptr64 __cdecl TLINK::GetNextDataSlot(void) __ptr64
?GetNextDataSlot@TLINK@@QEAAAEAVBIG_INT@@XZ
; public: unsigned short * __ptr64 __cdecl SNAPSHOT::GetSnapshotGlobalDeviceName(void) __ptr64
?GetSnapshotGlobalDeviceName@SNAPSHOT@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl SNAPSHOT::GetSnapshotNtDeviceName(void) __ptr64
?GetSnapshotNtDeviceName@SNAPSHOT@@QEAAPEAGXZ
; public: void * __ptr64 __cdecl TLINK::GetSortedFirst(void) __ptr64
?GetSortedFirst@TLINK@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl TLINK::GetSortedNext(void * __ptr64) __ptr64
?GetSortedNext@TLINK@@QEAAPEAXPEAX@Z
; public: static unsigned char __cdecl SNAPSHOT::GetVolumeSnapshot(class WSTRING * __ptr64,class SNAPSHOT * __ptr64 * __ptr64)
?GetVolumeSnapshot@SNAPSHOT@@SAEPEAVWSTRING@@PEAPEAV1@@Z
; public: unsigned char __cdecl CANNED_SECURITY::Initialize(void) __ptr64
?Initialize@CANNED_SECURITY@@QEAAEXZ
; public: unsigned char __cdecl DIGRAPH::Initialize(unsigned long) __ptr64
?Initialize@DIGRAPH@@QEAAEK@Z
; public: unsigned char __cdecl DP_DRIVE::Initialize(class WSTRING const * __ptr64,class WSTRING const * __ptr64,class MESSAGE * __ptr64,unsigned char,unsigned char) __ptr64
?Initialize@DP_DRIVE@@QEAAEPEBVWSTRING@@0PEAVMESSAGE@@EE@Z
; public: unsigned char __cdecl DP_DRIVE::Initialize(class WSTRING const * __ptr64,class MESSAGE * __ptr64,unsigned char,unsigned char,unsigned short) __ptr64
?Initialize@DP_DRIVE@@QEAAEPEBVWSTRING@@PEAVMESSAGE@@EEG@Z
; public: unsigned char __cdecl INTSTACK::Initialize(void) __ptr64
?Initialize@INTSTACK@@QEAAEXZ
; public: unsigned char __cdecl LOG_IO_DP_DRIVE::Initialize(class WSTRING const * __ptr64,class WSTRING const * __ptr64,class MESSAGE * __ptr64,unsigned char) __ptr64
?Initialize@LOG_IO_DP_DRIVE@@QEAAEPEBVWSTRING@@0PEAVMESSAGE@@E@Z
; public: unsigned char __cdecl LOG_IO_DP_DRIVE::Initialize(class WSTRING const * __ptr64,class MESSAGE * __ptr64,unsigned char,unsigned short) __ptr64
?Initialize@LOG_IO_DP_DRIVE@@QEAAEPEBVWSTRING@@PEAVMESSAGE@@EG@Z
; public: unsigned char __cdecl MOUNT_POINT_MAP::Initialize(void) __ptr64
?Initialize@MOUNT_POINT_MAP@@QEAAEXZ
; public: unsigned char __cdecl NUMBER_SET::Initialize(void) __ptr64
?Initialize@NUMBER_SET@@QEAAEXZ
; public: unsigned char __cdecl READ_CACHE::Initialize(class IO_DP_DRIVE * __ptr64,unsigned long) __ptr64
?Initialize@READ_CACHE@@QEAAEPEAVIO_DP_DRIVE@@K@Z
; public: unsigned char __cdecl READ_WRITE_CACHE::Initialize(class IO_DP_DRIVE * __ptr64,unsigned long) __ptr64
?Initialize@READ_WRITE_CACHE@@QEAAEPEAVIO_DP_DRIVE@@K@Z
; public: unsigned char __cdecl SECRUN::Initialize(class MEM * __ptr64,class IO_DP_DRIVE * __ptr64,class BIG_INT,unsigned long) __ptr64
?Initialize@SECRUN@@QEAAEPEAVMEM@@PEAVIO_DP_DRIVE@@VBIG_INT@@K@Z
; private: long __cdecl SNAPSHOT::Initialize(unsigned short * __ptr64) __ptr64
?Initialize@SNAPSHOT@@AEAAJPEAG@Z
; public: unsigned char __cdecl SPARSE_SET::Initialize(void) __ptr64
?Initialize@SPARSE_SET@@QEAAEXZ
; protected: unsigned char __cdecl SUPERAREA::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,unsigned long,class MESSAGE * __ptr64) __ptr64
?Initialize@SUPERAREA@@IEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@KPEAVMESSAGE@@@Z
; public: unsigned char __cdecl TLINK::Initialize(unsigned short) __ptr64
?Initialize@TLINK@@QEAAEG@Z
; protected: enum FORMAT_ERROR_CODE  __cdecl VOL_LIODPDRV::Initialize(class WSTRING const * __ptr64,class SUPERAREA * __ptr64,class MESSAGE * __ptr64,unsigned char,unsigned char,enum _MEDIA_TYPE,unsigned short,unsigned char) __ptr64
?Initialize@VOL_LIODPDRV@@IEAA?AW4FORMAT_ERROR_CODE@@PEBVWSTRING@@PEAVSUPERAREA@@PEAVMESSAGE@@EEW4_MEDIA_TYPE@@GE@Z
; protected: unsigned char __cdecl VOL_LIODPDRV::Initialize(class WSTRING const * __ptr64,class WSTRING const * __ptr64,class SUPERAREA * __ptr64,class MESSAGE * __ptr64,unsigned char) __ptr64
?Initialize@VOL_LIODPDRV@@IEAAEPEBVWSTRING@@0PEAVSUPERAREA@@PEAVMESSAGE@@E@Z
; public: unsigned char __cdecl IO_DP_DRIVE::InvalidateVolume(void) __ptr64
?InvalidateVolume@IO_DP_DRIVE@@QEAAEXZ
; public: static unsigned char __cdecl IFS_SYSTEM::IsArcSystemPartition(class WSTRING const * __ptr64,unsigned char * __ptr64)
?IsArcSystemPartition@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAE@Z
; public: static unsigned char __cdecl AUTOREG::IsEntryPresent(class WSTRING const * __ptr64,class WSTRING const * __ptr64)
?IsEntryPresent@AUTOREG@@SAEPEBVWSTRING@@0@Z
; public: static unsigned char __cdecl AUTOREG::IsEntryPresent(class WSTRING const * __ptr64)
?IsEntryPresent@AUTOREG@@SAEPEBVWSTRING@@@Z
; public: static unsigned char __cdecl IFS_SYSTEM::IsFileSystemEnabled(class WSTRING const * __ptr64,unsigned char * __ptr64)
?IsFileSystemEnabled@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAE@Z
; public: static unsigned char __cdecl AUTOREG::IsFrontEndPresent(class WSTRING const * __ptr64,class WSTRING const * __ptr64)
?IsFrontEndPresent@AUTOREG@@SAEPEBVWSTRING@@0@Z
; public: static unsigned char __cdecl IFS_SYSTEM::IsThisNtfs(class BIG_INT,unsigned long,void * __ptr64)
?IsThisNtfs@IFS_SYSTEM@@SAEVBIG_INT@@KPEAX@Z
; public: static unsigned char __cdecl IFS_SYSTEM::IsVolumeDirty(class WSTRING * __ptr64,unsigned char * __ptr64)
?IsVolumeDirty@IFS_SYSTEM@@SAEPEAVWSTRING@@PEAE@Z
; public: unsigned char __cdecl IO_DP_DRIVE::Lock(void) __ptr64
?Lock@IO_DP_DRIVE@@QEAAEXZ
; public: class BIG_INT  __cdecl INTSTACK::Look(unsigned long)const  __ptr64
?Look@INTSTACK@@QEBA?AVBIG_INT@@K@Z
; public: static unsigned char __cdecl IFS_SYSTEM::NtDriveNameToDosDriveName(class WSTRING const * __ptr64,class WSTRING * __ptr64)
?NtDriveNameToDosDriveName@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAV2@@Z
; public: void __cdecl INTSTACK::Pop(unsigned long) __ptr64
?Pop@INTSTACK@@QEAAXK@Z
; public: unsigned char __cdecl INTSTACK::Push(class BIG_INT) __ptr64
?Push@INTSTACK@@QEAAEVBIG_INT@@@Z
; public: static unsigned char __cdecl AUTOREG::PushEntry(class WSTRING const * __ptr64)
?PushEntry@AUTOREG@@SAEPEBVWSTRING@@@Z
; public: static unsigned char __cdecl VOL_LIODPDRV::QueryAutochkTimeOut(unsigned long * __ptr64)
?QueryAutochkTimeOut@VOL_LIODPDRV@@SAEPEAK@Z
; public: static unsigned char __cdecl IFS_SYSTEM::QueryCanonicalNtDriveName(class WSTRING const * __ptr64,class WSTRING * __ptr64)
?QueryCanonicalNtDriveName@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAV2@@Z
; public: unsigned char __cdecl DIGRAPH::QueryChildren(unsigned long,class NUMBER_SET * __ptr64)const  __ptr64
?QueryChildren@DIGRAPH@@QEBAEKPEAVNUMBER_SET@@@Z
; public: void __cdecl BIG_INT::QueryCompressedInteger(unsigned char * __ptr64,unsigned char * __ptr64)const  __ptr64
?QueryCompressedInteger@BIG_INT@@QEBAXPEAE0@Z
; public: unsigned char __cdecl NUMBER_SET::QueryContainingRange(class BIG_INT,class BIG_INT * __ptr64,class BIG_INT * __ptr64)const  __ptr64
?QueryContainingRange@NUMBER_SET@@QEBAEVBIG_INT@@PEAV2@1@Z
; public: void __cdecl NUMBER_SET::QueryDisjointRange(unsigned long,class BIG_INT * __ptr64,class BIG_INT * __ptr64)const  __ptr64
?QueryDisjointRange@NUMBER_SET@@QEBAXKPEAVBIG_INT@@0@Z
; public: void * __ptr64 __cdecl TLINK::QueryDisjointRangeAndAssignBuffer(class BIG_INT * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64,void * __ptr64,unsigned long,void * __ptr64) __ptr64
?QueryDisjointRangeAndAssignBuffer@TLINK@@QEAAPEAXPEAVBIG_INT@@PEAG1PEAXK2@Z
; public: void * __ptr64 __cdecl DP_DRIVE::QueryDriveHandle(void)const  __ptr64
?QueryDriveHandle@DP_DRIVE@@QEBAPEAXXZ
; public: unsigned char __cdecl MOUNT_POINT_MAP::QueryDriveName(class WSTRING * __ptr64,class WSTRING * __ptr64) __ptr64
?QueryDriveName@MOUNT_POINT_MAP@@QEAAEPEAVWSTRING@@0@Z
; public: enum DRIVE_TYPE  __cdecl DP_DRIVE::QueryDriveType(void)const  __ptr64
?QueryDriveType@DP_DRIVE@@QEBA?AW4DRIVE_TYPE@@XZ
; public: static unsigned char __cdecl IFS_SYSTEM::QueryFileSystemName(class WSTRING const * __ptr64,class WSTRING * __ptr64,long * __ptr64,class WSTRING * __ptr64)
?QueryFileSystemName@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAV2@PEAJ1@Z
; public: static unsigned char __cdecl IFS_SYSTEM::QueryFreeDiskSpace(class WSTRING const * __ptr64,class BIG_INT * __ptr64)
?QueryFreeDiskSpace@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAVBIG_INT@@@Z
; unsigned long __cdecl QueryMachineUniqueToken(void)
?QueryMachineUniqueToken@@YAKXZ
; public: unsigned char __cdecl DP_DRIVE::QueryMediaByte(void)const  __ptr64
?QueryMediaByte@DP_DRIVE@@QEBAEXZ
; public: unsigned short __cdecl TLINK::QueryMemberCount(void)const  __ptr64
?QueryMemberCount@TLINK@@QEBAGXZ
; public: static unsigned char __cdecl DP_DRIVE::QueryMrwSupport(void * __ptr64)
?QueryMrwSupport@DP_DRIVE@@SAEPEAX@Z
; public: static long __cdecl DP_DRIVE::QueryNtfsSupportInfo(void * __ptr64,unsigned char * __ptr64)
?QueryNtfsSupportInfo@DP_DRIVE@@SAJPEAXPEAE@Z
; public: static void __cdecl IFS_SYSTEM::QueryNtfsTime(union _LARGE_INTEGER * __ptr64)
?QueryNtfsTime@IFS_SYSTEM@@SAXPEAT_LARGE_INTEGER@@@Z
; public: static unsigned char __cdecl IFS_SYSTEM::QueryNtfsVersion(unsigned char * __ptr64,unsigned char * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,void * __ptr64)
?QueryNtfsVersion@IFS_SYSTEM@@SAEPEAE0PEAVLOG_IO_DP_DRIVE@@PEAX@Z
; public: class BIG_INT  __cdecl NUMBER_SET::QueryNumber(class BIG_INT)const  __ptr64
?QueryNumber@NUMBER_SET@@QEBA?AVBIG_INT@@V2@@Z
; public: static unsigned long __cdecl IFS_SYSTEM::QueryPageSize(void)
?QueryPageSize@IFS_SYSTEM@@SAKXZ
; public: unsigned char __cdecl DIGRAPH::QueryParents(unsigned long,class NUMBER_SET * __ptr64)const  __ptr64
?QueryParents@DIGRAPH@@QEBAEKPEAVNUMBER_SET@@@Z
; public: unsigned char __cdecl DIGRAPH::QueryParentsWithChildren(class NUMBER_SET * __ptr64,unsigned long)const  __ptr64
?QueryParentsWithChildren@DIGRAPH@@QEBAEPEAVNUMBER_SET@@K@Z
; public: enum _MEDIA_TYPE  __cdecl DP_DRIVE::QueryRecommendedMediaType(void)const  __ptr64
?QueryRecommendedMediaType@DP_DRIVE@@QEBA?AW4_MEDIA_TYPE@@XZ
; public: virtual unsigned long __cdecl DP_DRIVE::QuerySectorSize(void)const  __ptr64
?QuerySectorSize@DP_DRIVE@@UEBAKXZ
; public: virtual class BIG_INT  __cdecl DP_DRIVE::QuerySectors(void)const  __ptr64
?QuerySectors@DP_DRIVE@@UEBA?AVBIG_INT@@XZ
; public: unsigned short __cdecl TLINK::QuerySize(void)const  __ptr64
?QuerySize@TLINK@@QEBAGXZ
; public: unsigned char __cdecl MOUNT_POINT_MAP::QueryVolumeName(class WSTRING * __ptr64,class WSTRING * __ptr64) __ptr64
?QueryVolumeName@MOUNT_POINT_MAP@@QEAAEPEAVWSTRING@@0@Z
; public: unsigned char __cdecl IO_DP_DRIVE::Read(class BIG_INT,unsigned long,void * __ptr64) __ptr64
?Read@IO_DP_DRIVE@@QEAAEVBIG_INT@@KPEAX@Z
; public: virtual unsigned char __cdecl SECRUN::Read(void) __ptr64
?Read@SECRUN@@UEAAEXZ
; public: unsigned char __cdecl VOL_LIODPDRV::Recover(class WSTRING const * __ptr64,class MESSAGE * __ptr64) __ptr64
?Recover@VOL_LIODPDRV@@QEAAEPEBVWSTRING@@PEAVMESSAGE@@@Z
; public: static unsigned char __cdecl SNAPSHOT::ReleaseVolumeSnapshot(class SNAPSHOT * __ptr64)
?ReleaseVolumeSnapshot@SNAPSHOT@@SAEPEAV1@@Z
; public: unsigned char __cdecl NUMBER_SET::Remove(class NUMBER_SET const * __ptr64) __ptr64
?Remove@NUMBER_SET@@QEAAEPEBV1@@Z
; public: unsigned char __cdecl NUMBER_SET::Remove(class BIG_INT,class BIG_INT) __ptr64
?Remove@NUMBER_SET@@QEAAEVBIG_INT@@0@Z
; public: unsigned char __cdecl NUMBER_SET::Remove(class BIG_INT) __ptr64
?Remove@NUMBER_SET@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl NUMBER_SET::RemoveAll(void) __ptr64
?RemoveAll@NUMBER_SET@@QEAAEXZ
; public: unsigned char __cdecl SPARSE_SET::RemoveAll(void) __ptr64
?RemoveAll@SPARSE_SET@@QEAAEXZ
; public: unsigned char __cdecl DIGRAPH::RemoveEdge(unsigned long,unsigned long) __ptr64
?RemoveEdge@DIGRAPH@@QEAAEKK@Z
; void __cdecl RestoreThreadExecutionState(long,unsigned long)
?RestoreThreadExecutionState@@YAXJK@Z
; public: unsigned char __cdecl INTSTACK::ReverseCopy(class INTSTACK * __ptr64) __ptr64
?ReverseCopy@INTSTACK@@QEAAEPEAV1@@Z
; public: unsigned char __cdecl DP_DRIVE::SendSonyMSFormatCmd(void) __ptr64
?SendSonyMSFormatCmd@DP_DRIVE@@QEAAEXZ
; public: unsigned char __cdecl DP_DRIVE::SendSonyMSInquiryCmd(struct SONY_MS_INQUIRY_DATA * __ptr64) __ptr64
?SendSonyMSInquiryCmd@DP_DRIVE@@QEAAEPEAUSONY_MS_INQUIRY_DATA@@@Z
; public: unsigned char __cdecl DP_DRIVE::SendSonyMSModeSenseCmd(struct SONY_MS_MODE_SENSE_DATA * __ptr64) __ptr64
?SendSonyMSModeSenseCmd@DP_DRIVE@@QEAAEPEAUSONY_MS_MODE_SENSE_DATA@@@Z
; public: unsigned char __cdecl DP_DRIVE::SendSonyMSRequestSenseCmd(struct _SENSE_DATA * __ptr64) __ptr64
?SendSonyMSRequestSenseCmd@DP_DRIVE@@QEAAEPEAU_SENSE_DATA@@@Z
; public: unsigned char __cdecl DP_DRIVE::SendSonyMSTestUnitReadyCmd(struct _SENSE_DATA * __ptr64) __ptr64
?SendSonyMSTestUnitReadyCmd@DP_DRIVE@@QEAAEPEAU_SENSE_DATA@@@Z
; public: void __cdecl BIG_INT::Set(unsigned char,unsigned char const * __ptr64) __ptr64
?Set@BIG_INT@@QEAAXEPEBE@Z
; public: static unsigned char __cdecl VOL_LIODPDRV::SetAutochkTimeOut(unsigned long)
?SetAutochkTimeOut@VOL_LIODPDRV@@SAEK@Z
; public: void __cdecl IO_DP_DRIVE::SetCache(class DRIVE_CACHE * __ptr64) __ptr64
?SetCache@IO_DP_DRIVE@@QEAAXPEAVDRIVE_CACHE@@@Z
; public: unsigned char __cdecl LOG_IO_DP_DRIVE::SetSystemId(unsigned char) __ptr64
?SetSystemId@LOG_IO_DP_DRIVE@@QEAAEE@Z
; public: unsigned char __cdecl VOL_LIODPDRV::SetVolumeLabelAndPrintFormatReport(class WSTRING const * __ptr64,class MESSAGE * __ptr64) __ptr64
?SetVolumeLabelAndPrintFormatReport@VOL_LIODPDRV@@QEAAEPEBVWSTRING@@PEAVMESSAGE@@@Z
; public: void __cdecl TLINK::ShellSort(void) __ptr64
?ShellSort@TLINK@@QEAAXXZ
; public: void __cdecl TLINK::Sort(void) __ptr64
?Sort@TLINK@@QEAAXXZ
; public: unsigned char __cdecl IO_DP_DRIVE::Verify(class BIG_INT,class BIG_INT) __ptr64
?Verify@IO_DP_DRIVE@@QEAAEVBIG_INT@@0@Z
; public: unsigned char __cdecl IO_DP_DRIVE::Verify(class BIG_INT,class BIG_INT,class NUMBER_SET * __ptr64) __ptr64
?Verify@IO_DP_DRIVE@@QEAAEVBIG_INT@@0PEAVNUMBER_SET@@@Z
; public: unsigned char __cdecl IO_DP_DRIVE::Write(class BIG_INT,unsigned long,void * __ptr64) __ptr64
?Write@IO_DP_DRIVE@@QEAAEVBIG_INT@@KPEAX@Z
; public: virtual unsigned char __cdecl SECRUN::Write(void) __ptr64
?Write@SECRUN@@UEAAEXZ
; public: static unsigned char __cdecl IFS_SYSTEM::WriteToFile(class WSTRING const * __ptr64,void * __ptr64,unsigned long,unsigned char)
?WriteToFile@IFS_SYSTEM@@SAEPEBVWSTRING@@PEAXKE@Z
