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