; 
; Exports of file UNTFS.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY UNTFS.dll
EXPORTS
; public: __cdecl NTFS_ATTRIBUTE::NTFS_ATTRIBUTE(void) __ptr64
??0NTFS_ATTRIBUTE@@QEAA@XZ
; public: __cdecl NTFS_ATTRIBUTE_DEFINITION_TABLE::NTFS_ATTRIBUTE_DEFINITION_TABLE(void) __ptr64
??0NTFS_ATTRIBUTE_DEFINITION_TABLE@@QEAA@XZ
; public: __cdecl NTFS_ATTRIBUTE_LIST::NTFS_ATTRIBUTE_LIST(void) __ptr64
??0NTFS_ATTRIBUTE_LIST@@QEAA@XZ
; public: __cdecl NTFS_ATTRIBUTE_RECORD::NTFS_ATTRIBUTE_RECORD(void) __ptr64
??0NTFS_ATTRIBUTE_RECORD@@QEAA@XZ
; public: __cdecl NTFS_BAD_CLUSTER_FILE::NTFS_BAD_CLUSTER_FILE(void) __ptr64
??0NTFS_BAD_CLUSTER_FILE@@QEAA@XZ
; public: __cdecl NTFS_BITMAP::NTFS_BITMAP(void) __ptr64
??0NTFS_BITMAP@@QEAA@XZ
; public: __cdecl NTFS_BITMAP_FILE::NTFS_BITMAP_FILE(void) __ptr64
??0NTFS_BITMAP_FILE@@QEAA@XZ
; public: __cdecl NTFS_BOOT_FILE::NTFS_BOOT_FILE(void) __ptr64
??0NTFS_BOOT_FILE@@QEAA@XZ
; public: __cdecl NTFS_CLUSTER_RUN::NTFS_CLUSTER_RUN(void) __ptr64
??0NTFS_CLUSTER_RUN@@QEAA@XZ
; public: __cdecl NTFS_EXTENT_LIST::NTFS_EXTENT_LIST(void) __ptr64
??0NTFS_EXTENT_LIST@@QEAA@XZ
; public: __cdecl NTFS_FILE_RECORD_SEGMENT::NTFS_FILE_RECORD_SEGMENT(void) __ptr64
??0NTFS_FILE_RECORD_SEGMENT@@QEAA@XZ
; public: __cdecl NTFS_FRS_STRUCTURE::NTFS_FRS_STRUCTURE(void) __ptr64
??0NTFS_FRS_STRUCTURE@@QEAA@XZ
; public: __cdecl NTFS_INDEX_TREE::NTFS_INDEX_TREE(void) __ptr64
??0NTFS_INDEX_TREE@@QEAA@XZ
; public: __cdecl NTFS_LOG_FILE::NTFS_LOG_FILE(void) __ptr64
??0NTFS_LOG_FILE@@QEAA@XZ
; public: __cdecl NTFS_MFT_FILE::NTFS_MFT_FILE(void) __ptr64
??0NTFS_MFT_FILE@@QEAA@XZ
; public: __cdecl NTFS_MFT_INFO::NTFS_MFT_INFO(void) __ptr64
??0NTFS_MFT_INFO@@QEAA@XZ
; public: __cdecl NTFS_REFLECTED_MASTER_FILE_TABLE::NTFS_REFLECTED_MASTER_FILE_TABLE(void) __ptr64
??0NTFS_REFLECTED_MASTER_FILE_TABLE@@QEAA@XZ
; public: __cdecl NTFS_SA::NTFS_SA(void) __ptr64
??0NTFS_SA@@QEAA@XZ
; public: __cdecl NTFS_UPCASE_FILE::NTFS_UPCASE_FILE(void) __ptr64
??0NTFS_UPCASE_FILE@@QEAA@XZ
; public: __cdecl NTFS_UPCASE_TABLE::NTFS_UPCASE_TABLE(void) __ptr64
??0NTFS_UPCASE_TABLE@@QEAA@XZ
; public: __cdecl RA_PROCESS_FILE::RA_PROCESS_FILE(void) __ptr64
??0RA_PROCESS_FILE@@QEAA@XZ
; public: __cdecl RA_PROCESS_SD::RA_PROCESS_SD(void) __ptr64
??0RA_PROCESS_SD@@QEAA@XZ
; public: virtual __cdecl NTFS_ATTRIBUTE::~NTFS_ATTRIBUTE(void) __ptr64
??1NTFS_ATTRIBUTE@@UEAA@XZ
; public: virtual __cdecl NTFS_ATTRIBUTE_DEFINITION_TABLE::~NTFS_ATTRIBUTE_DEFINITION_TABLE(void) __ptr64
??1NTFS_ATTRIBUTE_DEFINITION_TABLE@@UEAA@XZ
; public: virtual __cdecl NTFS_ATTRIBUTE_LIST::~NTFS_ATTRIBUTE_LIST(void) __ptr64
??1NTFS_ATTRIBUTE_LIST@@UEAA@XZ
; public: virtual __cdecl NTFS_ATTRIBUTE_RECORD::~NTFS_ATTRIBUTE_RECORD(void) __ptr64
??1NTFS_ATTRIBUTE_RECORD@@UEAA@XZ
; public: virtual __cdecl NTFS_BAD_CLUSTER_FILE::~NTFS_BAD_CLUSTER_FILE(void) __ptr64
??1NTFS_BAD_CLUSTER_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_BITMAP::~NTFS_BITMAP(void) __ptr64
??1NTFS_BITMAP@@UEAA@XZ
; public: virtual __cdecl NTFS_BITMAP_FILE::~NTFS_BITMAP_FILE(void) __ptr64
??1NTFS_BITMAP_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_BOOT_FILE::~NTFS_BOOT_FILE(void) __ptr64
??1NTFS_BOOT_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_CLUSTER_RUN::~NTFS_CLUSTER_RUN(void) __ptr64
??1NTFS_CLUSTER_RUN@@UEAA@XZ
; public: virtual __cdecl NTFS_EXTENT_LIST::~NTFS_EXTENT_LIST(void) __ptr64
??1NTFS_EXTENT_LIST@@UEAA@XZ
; public: virtual __cdecl NTFS_FILE_RECORD_SEGMENT::~NTFS_FILE_RECORD_SEGMENT(void) __ptr64
??1NTFS_FILE_RECORD_SEGMENT@@UEAA@XZ
; public: virtual __cdecl NTFS_FRS_STRUCTURE::~NTFS_FRS_STRUCTURE(void) __ptr64
??1NTFS_FRS_STRUCTURE@@UEAA@XZ
; public: virtual __cdecl NTFS_INDEX_TREE::~NTFS_INDEX_TREE(void) __ptr64
??1NTFS_INDEX_TREE@@UEAA@XZ
; public: virtual __cdecl NTFS_LOG_FILE::~NTFS_LOG_FILE(void) __ptr64
??1NTFS_LOG_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_MFT_FILE::~NTFS_MFT_FILE(void) __ptr64
??1NTFS_MFT_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_MFT_INFO::~NTFS_MFT_INFO(void) __ptr64
??1NTFS_MFT_INFO@@UEAA@XZ
; public: virtual __cdecl NTFS_REFLECTED_MASTER_FILE_TABLE::~NTFS_REFLECTED_MASTER_FILE_TABLE(void) __ptr64
??1NTFS_REFLECTED_MASTER_FILE_TABLE@@UEAA@XZ
; public: virtual __cdecl NTFS_SA::~NTFS_SA(void) __ptr64
??1NTFS_SA@@UEAA@XZ
; public: virtual __cdecl NTFS_UPCASE_FILE::~NTFS_UPCASE_FILE(void) __ptr64
??1NTFS_UPCASE_FILE@@UEAA@XZ
; public: virtual __cdecl NTFS_UPCASE_TABLE::~NTFS_UPCASE_TABLE(void) __ptr64
??1NTFS_UPCASE_TABLE@@UEAA@XZ
; public: virtual __cdecl RA_PROCESS_FILE::~RA_PROCESS_FILE(void) __ptr64
??1RA_PROCESS_FILE@@UEAA@XZ
; public: virtual __cdecl RA_PROCESS_SD::~RA_PROCESS_SD(void) __ptr64
??1RA_PROCESS_SD@@UEAA@XZ
; public: unsigned char __cdecl NTFS_EXTENT_LIST::AddExtent(class BIG_INT,class BIG_INT,class BIG_INT) __ptr64
?AddExtent@NTFS_EXTENT_LIST@@QEAAEVBIG_INT@@00@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::AddFileNameAttribute(struct _FILE_NAME * __ptr64) __ptr64
?AddFileNameAttribute@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAU_FILE_NAME@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::AddSecurityDescriptor(enum _CANNED_SECURITY_TYPE,class NTFS_BITMAP * __ptr64) __ptr64
?AddSecurityDescriptor@NTFS_FILE_RECORD_SEGMENT@@QEAAEW4_CANNED_SECURITY_TYPE@@PEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::AddSecurityDescriptorData(class NTFS_ATTRIBUTE * __ptr64,void * __ptr64,struct _SECURITY_ENTRY * __ptr64 * __ptr64,unsigned long,enum _CANNED_SECURITY_TYPE,class NTFS_BITMAP * __ptr64,unsigned char) __ptr64
?AddSecurityDescriptorData@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVNTFS_ATTRIBUTE@@PEAXPEAPEAU_SECURITY_ENTRY@@KW4_CANNED_SECURITY_TYPE@@PEAVNTFS_BITMAP@@E@Z
; public: unsigned char __cdecl NTFS_MASTER_FILE_TABLE::AllocateFileRecordSegment(class BIG_INT * __ptr64,unsigned char) __ptr64
?AllocateFileRecordSegment@NTFS_MASTER_FILE_TABLE@@QEAAEPEAVBIG_INT@@E@Z
; public: static unsigned char __cdecl NTFS_MFT_INFO::CompareDupInfo(void * __ptr64,struct _FILE_NAME * __ptr64)
?CompareDupInfo@NTFS_MFT_INFO@@SAEPEAXPEAU_FILE_NAME@@@Z
; public: static unsigned char __cdecl NTFS_MFT_INFO::CompareFileName(void * __ptr64,unsigned long,struct _FILE_NAME * __ptr64,unsigned short * __ptr64)
?CompareFileName@NTFS_MFT_INFO@@SAEPEAXKPEAU_FILE_NAME@@PEAG@Z
; private: static void __cdecl NTFS_MFT_INFO::ComputeDupInfoSignature(struct _DUPLICATED_INFORMATION * __ptr64,unsigned char * __ptr64 const)
?ComputeDupInfoSignature@NTFS_MFT_INFO@@CAXPEAU_DUPLICATED_INFORMATION@@QEAE@Z
; private: static void __cdecl NTFS_MFT_INFO::ComputeFileNameSignature(unsigned long,struct _FILE_NAME * __ptr64,unsigned char * __ptr64 const)
?ComputeFileNameSignature@NTFS_MFT_INFO@@CAXKPEAU_FILE_NAME@@QEAE@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::CopyIterator(class NTFS_INDEX_TREE * __ptr64) __ptr64
?CopyIterator@NTFS_INDEX_TREE@@QEAAEPEAV1@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Create(struct _STANDARD_INFORMATION const * __ptr64,unsigned short) __ptr64
?Create@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEBU_STANDARD_INFORMATION@@G@Z
; public: unsigned char __cdecl NTFS_LOG_FILE::CreateDataAttribute(class BIG_INT,unsigned long,class NTFS_BITMAP * __ptr64) __ptr64
?CreateDataAttribute@NTFS_LOG_FILE@@QEAAEVBIG_INT@@KPEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_SA::CreateElementaryStructures(class NTFS_BITMAP * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long,class NUMBER_SET const * __ptr64,unsigned char,unsigned char,class MESSAGE * __ptr64,struct BIOS_PARAMETER_BLOCK * __ptr64,class WSTRING const * __ptr64) __ptr64
?CreateElementaryStructures@NTFS_SA@@QEAAEPEAVNTFS_BITMAP@@KKKKPEBVNUMBER_SET@@EEPEAVMESSAGE@@PEAUBIOS_PARAMETER_BLOCK@@PEBVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_MASTER_FILE_TABLE::Extend(unsigned long) __ptr64
?Extend@NTFS_MASTER_FILE_TABLE@@QEAAEK@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Flush(class NTFS_BITMAP * __ptr64,class NTFS_INDEX_TREE * __ptr64,unsigned char) __ptr64
?Flush@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVNTFS_BITMAP@@PEAVNTFS_INDEX_TREE@@E@Z
; public: unsigned char __cdecl NTFS_MFT_FILE::Flush(void) __ptr64
?Flush@NTFS_MFT_FILE@@QEAAEXZ
; public: struct _INDEX_ENTRY const * __ptr64 __cdecl NTFS_INDEX_TREE::GetNext(unsigned long * __ptr64,unsigned char * __ptr64,unsigned char) __ptr64
?GetNext@NTFS_INDEX_TREE@@QEAAPEBU_INDEX_ENTRY@@PEAKPEAEE@Z
; public: struct _ATTRIBUTE_LIST_ENTRY const * __ptr64 __cdecl NTFS_ATTRIBUTE_LIST::GetNextAttributeListEntry(struct _ATTRIBUTE_LIST_ENTRY const * __ptr64)const  __ptr64
?GetNextAttributeListEntry@NTFS_ATTRIBUTE_LIST@@QEBAPEBU_ATTRIBUTE_LIST_ENTRY@@PEBU2@@Z
; public: void * __ptr64 __cdecl NTFS_FRS_STRUCTURE::GetNextAttributeRecord(void const * __ptr64,class MESSAGE * __ptr64,unsigned char * __ptr64) __ptr64
?GetNextAttributeRecord@NTFS_FRS_STRUCTURE@@QEAAPEAXPEBXPEAVMESSAGE@@PEAE@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE::Initialize(class LOG_IO_DP_DRIVE * __ptr64,unsigned long,class NTFS_EXTENT_LIST const * __ptr64,class BIG_INT,class BIG_INT,unsigned long,class WSTRING const * __ptr64,unsigned short) __ptr64
?Initialize@NTFS_ATTRIBUTE@@QEAAEPEAVLOG_IO_DP_DRIVE@@KPEBVNTFS_EXTENT_LIST@@VBIG_INT@@2KPEBVWSTRING@@G@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE::Initialize(class LOG_IO_DP_DRIVE * __ptr64,unsigned long,void const * __ptr64,unsigned long,unsigned long,class WSTRING const * __ptr64,unsigned short) __ptr64
?Initialize@NTFS_ATTRIBUTE@@QEAAEPEAVLOG_IO_DP_DRIVE@@KPEBXKKPEBVWSTRING@@G@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_DEFINITION_TABLE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64,unsigned char) __ptr64
?Initialize@NTFS_ATTRIBUTE_DEFINITION_TABLE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@E@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_RECORD::Initialize(class IO_DP_DRIVE * __ptr64,void * __ptr64) __ptr64
?Initialize@NTFS_ATTRIBUTE_RECORD@@QEAAEPEAVIO_DP_DRIVE@@PEAX@Z
; public: unsigned char __cdecl NTFS_BAD_CLUSTER_FILE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_BAD_CLUSTER_FILE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_BITMAP::Initialize(class BIG_INT,unsigned char,class LOG_IO_DP_DRIVE * __ptr64,unsigned long) __ptr64
?Initialize@NTFS_BITMAP@@QEAAEVBIG_INT@@EPEAVLOG_IO_DP_DRIVE@@K@Z
; public: unsigned char __cdecl NTFS_BITMAP_FILE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_BITMAP_FILE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_BOOT_FILE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_BOOT_FILE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_CLUSTER_RUN::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class BIG_INT,unsigned long,unsigned long) __ptr64
?Initialize@NTFS_CLUSTER_RUN@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@VBIG_INT@@KK@Z
; public: unsigned char __cdecl NTFS_EXTENT_LIST::Initialize(class BIG_INT,class BIG_INT) __ptr64
?Initialize@NTFS_EXTENT_LIST@@QEAAEVBIG_INT@@0@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Initialize(class BIG_INT,unsigned long,class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_FILE_RECORD_SEGMENT@@QEAAEVBIG_INT@@KPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Initialize(class BIG_INT,class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_FILE_RECORD_SEGMENT@@QEAAEVBIG_INT@@PEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Initialize(class BIG_INT,class NTFS_MFT_FILE * __ptr64) __ptr64
?Initialize@NTFS_FILE_RECORD_SEGMENT@@QEAAEVBIG_INT@@PEAVNTFS_MFT_FILE@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Initialize(void) __ptr64
?Initialize@NTFS_FILE_RECORD_SEGMENT@@QEAAEXZ
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::Initialize(class MEM * __ptr64,class LOG_IO_DP_DRIVE * __ptr64,class BIG_INT,unsigned long,class BIG_INT,unsigned long,class NTFS_UPCASE_TABLE * __ptr64,unsigned long) __ptr64
?Initialize@NTFS_FRS_STRUCTURE@@QEAAEPEAVMEM@@PEAVLOG_IO_DP_DRIVE@@VBIG_INT@@K2KPEAVNTFS_UPCASE_TABLE@@K@Z
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::Initialize(class MEM * __ptr64,class NTFS_ATTRIBUTE * __ptr64,class BIG_INT,unsigned long,class BIG_INT,unsigned long,class NTFS_UPCASE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_FRS_STRUCTURE@@QEAAEPEAVMEM@@PEAVNTFS_ATTRIBUTE@@VBIG_INT@@K2KPEAVNTFS_UPCASE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::Initialize(class MEM * __ptr64,class NTFS_ATTRIBUTE * __ptr64,class BIG_INT,unsigned long,unsigned long,class BIG_INT,unsigned long,class NTFS_UPCASE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_FRS_STRUCTURE@@QEAAEPEAVMEM@@PEAVNTFS_ATTRIBUTE@@VBIG_INT@@KK2KPEAVNTFS_UPCASE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::Initialize(unsigned long,class LOG_IO_DP_DRIVE * __ptr64,unsigned long,class NTFS_BITMAP * __ptr64,class NTFS_UPCASE_TABLE * __ptr64,unsigned long,unsigned long,unsigned long,class WSTRING const * __ptr64) __ptr64
?Initialize@NTFS_INDEX_TREE@@QEAAEKPEAVLOG_IO_DP_DRIVE@@KPEAVNTFS_BITMAP@@PEAVNTFS_UPCASE_TABLE@@KKKPEBVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::Initialize(class LOG_IO_DP_DRIVE * __ptr64,unsigned long,class NTFS_BITMAP * __ptr64,class NTFS_UPCASE_TABLE * __ptr64,unsigned long,class NTFS_FILE_RECORD_SEGMENT * __ptr64,class WSTRING const * __ptr64) __ptr64
?Initialize@NTFS_INDEX_TREE@@QEAAEPEAVLOG_IO_DP_DRIVE@@KPEAVNTFS_BITMAP@@PEAVNTFS_UPCASE_TABLE@@KPEAVNTFS_FILE_RECORD_SEGMENT@@PEBVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_LOG_FILE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_LOG_FILE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_MFT_FILE::Initialize(class LOG_IO_DP_DRIVE * __ptr64,class BIG_INT,unsigned long,unsigned long,class BIG_INT,class NTFS_BITMAP * __ptr64,class NTFS_UPCASE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_MFT_FILE@@QEAAEPEAVLOG_IO_DP_DRIVE@@VBIG_INT@@KK1PEAVNTFS_BITMAP@@PEAVNTFS_UPCASE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_MFT_INFO::Initialize(class BIG_INT,class NTFS_UPCASE_TABLE * __ptr64,unsigned char,unsigned char,unsigned __int64) __ptr64
?Initialize@NTFS_MFT_INFO@@QEAAEVBIG_INT@@PEAVNTFS_UPCASE_TABLE@@EE_K@Z
; public: unsigned char __cdecl NTFS_MFT_INFO::Initialize(void) __ptr64
?Initialize@NTFS_MFT_INFO@@QEAAEXZ
; public: unsigned char __cdecl NTFS_REFLECTED_MASTER_FILE_TABLE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_REFLECTED_MASTER_FILE_TABLE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_SA::Initialize(class LOG_IO_DP_DRIVE * __ptr64,class MESSAGE * __ptr64,class BIG_INT,class BIG_INT) __ptr64
?Initialize@NTFS_SA@@QEAAEPEAVLOG_IO_DP_DRIVE@@PEAVMESSAGE@@VBIG_INT@@2@Z
; public: unsigned char __cdecl NTFS_UPCASE_FILE::Initialize(class NTFS_MASTER_FILE_TABLE * __ptr64) __ptr64
?Initialize@NTFS_UPCASE_FILE@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_UPCASE_TABLE::Initialize(class NTFS_ATTRIBUTE * __ptr64) __ptr64
?Initialize@NTFS_UPCASE_TABLE@@QEAAEPEAVNTFS_ATTRIBUTE@@@Z
; public: static unsigned char __cdecl RA_PROCESS_FILE::Initialize(class NTFS_SA * __ptr64,class BIG_INT,class BIG_INT * __ptr64,unsigned long * __ptr64,class NTFS_FRS_STRUCTURE * __ptr64,class NTFS_FRS_STRUCTURE * __ptr64,class HMEM * __ptr64,class HMEM * __ptr64,void * __ptr64,void * __ptr64,class NTFS_ATTRIBUTE * __ptr64,class NTFS_UPCASE_TABLE * __ptr64)
?Initialize@RA_PROCESS_FILE@@SAEPEAVNTFS_SA@@VBIG_INT@@PEAV3@PEAKPEAVNTFS_FRS_STRUCTURE@@4PEAVHMEM@@5PEAX6PEAVNTFS_ATTRIBUTE@@PEAVNTFS_UPCASE_TABLE@@@Z
; public: static unsigned char __cdecl RA_PROCESS_SD::Initialize(class NTFS_SA * __ptr64,class BIG_INT,class BIG_INT * __ptr64,unsigned long * __ptr64,class NTFS_FILE_RECORD_SEGMENT * __ptr64,class NTFS_FILE_RECORD_SEGMENT * __ptr64,void * __ptr64,void * __ptr64,class NTFS_MASTER_FILE_TABLE * __ptr64)
?Initialize@RA_PROCESS_SD@@SAEPEAVNTFS_SA@@VBIG_INT@@PEAV3@PEAKPEAVNTFS_FILE_RECORD_SEGMENT@@4PEAX5PEAVNTFS_MASTER_FILE_TABLE@@@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::InsertEntry(unsigned long,void * __ptr64,struct _MFT_SEGMENT_REFERENCE,unsigned char) __ptr64
?InsertEntry@NTFS_INDEX_TREE@@QEAAEKPEAXU_MFT_SEGMENT_REFERENCE@@E@Z
; public: virtual unsigned char __cdecl NTFS_ATTRIBUTE::InsertIntoFile(class NTFS_FILE_RECORD_SEGMENT * __ptr64,class NTFS_BITMAP * __ptr64) __ptr64
?InsertIntoFile@NTFS_ATTRIBUTE@@UEAAEPEAVNTFS_FILE_RECORD_SEGMENT@@PEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_BITMAP::IsAllocated(class BIG_INT,class BIG_INT)const  __ptr64
?IsAllocated@NTFS_BITMAP@@QEBAEVBIG_INT@@0@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::IsAttributePresent(unsigned long,class WSTRING const * __ptr64,unsigned char) __ptr64
?IsAttributePresent@NTFS_FILE_RECORD_SEGMENT@@QEAAEKPEBVWSTRING@@E@Z
; public: static unsigned char __cdecl NTFS_SA::IsDosName(struct _FILE_NAME const * __ptr64)
?IsDosName@NTFS_SA@@SAEPEBU_FILE_NAME@@@Z
; public: unsigned char __cdecl NTFS_BITMAP::IsFree(class BIG_INT,class BIG_INT)const  __ptr64
?IsFree@NTFS_BITMAP@@QEBAEVBIG_INT@@0@Z
; public: static unsigned char __cdecl NTFS_SA::IsNtfsName(struct _FILE_NAME const * __ptr64)
?IsNtfsName@NTFS_SA@@SAEPEBU_FILE_NAME@@@Z
; public: virtual unsigned char __cdecl NTFS_ATTRIBUTE::MakeNonresident(class NTFS_BITMAP * __ptr64) __ptr64
?MakeNonresident@NTFS_ATTRIBUTE@@UEAAEPEAVNTFS_BITMAP@@@Z
; long __cdecl NtfsUpcaseCompare(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned long,class NTFS_UPCASE_TABLE const * __ptr64,unsigned char)
?NtfsUpcaseCompare@@YAJPEBGK0KPEBVNTFS_UPCASE_TABLE@@E@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::QueryAttribute(class NTFS_ATTRIBUTE * __ptr64,unsigned char * __ptr64,unsigned long,class WSTRING const * __ptr64) __ptr64
?QueryAttribute@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVNTFS_ATTRIBUTE@@PEAEKPEBVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::QueryAttributeByOrdinal(class NTFS_ATTRIBUTE * __ptr64,unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?QueryAttributeByOrdinal@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVNTFS_ATTRIBUTE@@PEAEKK@Z
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::QueryAttributeList(class NTFS_ATTRIBUTE_LIST * __ptr64) __ptr64
?QueryAttributeList@NTFS_FRS_STRUCTURE@@QEAAEPEAVNTFS_ATTRIBUTE_LIST@@@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::QueryAttributeListAttribute(class NTFS_ATTRIBUTE * __ptr64,unsigned char * __ptr64) __ptr64
?QueryAttributeListAttribute@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVNTFS_ATTRIBUTE@@PEAE@Z
; public: unsigned char __cdecl NTFS_SA::QueryClusterFactor(void)const  __ptr64
?QueryClusterFactor@NTFS_SA@@QEBAEXZ
; public: static unsigned long __cdecl NTFS_SA::QueryDefaultClustersPerIndexBuffer(class DP_DRIVE const * __ptr64,unsigned long)
?QueryDefaultClustersPerIndexBuffer@NTFS_SA@@SAKPEBVDP_DRIVE@@K@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::QueryEntry(unsigned long,void * __ptr64,unsigned long,struct _INDEX_ENTRY * __ptr64 * __ptr64,class NTFS_INDEX_BUFFER * __ptr64 * __ptr64,unsigned char * __ptr64) __ptr64
?QueryEntry@NTFS_INDEX_TREE@@QEAAEKPEAXKPEAPEAU_INDEX_ENTRY@@PEAPEAVNTFS_INDEX_BUFFER@@PEAE@Z
; public: unsigned char __cdecl NTFS_EXTENT_LIST::QueryExtent(unsigned long,class BIG_INT * __ptr64,class BIG_INT * __ptr64,class BIG_INT * __ptr64)const  __ptr64
?QueryExtent@NTFS_EXTENT_LIST@@QEBAEKPEAVBIG_INT@@00@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_RECORD::QueryExtentList(class NTFS_EXTENT_LIST * __ptr64)const  __ptr64
?QueryExtentList@NTFS_ATTRIBUTE_RECORD@@QEBAEPEAVNTFS_EXTENT_LIST@@@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::QueryFileReference(unsigned long,void * __ptr64,unsigned long,struct _MFT_SEGMENT_REFERENCE * __ptr64,unsigned char * __ptr64) __ptr64
?QueryFileReference@NTFS_INDEX_TREE@@QEAAEKPEAXKPEAU_MFT_SEGMENT_REFERENCE@@PEAE@Z
; public: unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::QueryFileSizes(class BIG_INT * __ptr64,class BIG_INT * __ptr64,unsigned char * __ptr64) __ptr64
?QueryFileSizes@NTFS_FILE_RECORD_SEGMENT@@QEAAEPEAVBIG_INT@@0PEAE@Z
; public: static unsigned char __cdecl NTFS_MFT_INFO::QueryFlags(void * __ptr64,unsigned short)
?QueryFlags@NTFS_MFT_INFO@@SAEPEAXG@Z
; public: unsigned char __cdecl NTFS_SA::QueryFrsFromPath(class WSTRING const * __ptr64,class NTFS_MASTER_FILE_TABLE * __ptr64,class NTFS_BITMAP * __ptr64,class NTFS_FILE_RECORD_SEGMENT * __ptr64,unsigned char * __ptr64,unsigned char * __ptr64) __ptr64
?QueryFrsFromPath@NTFS_SA@@QEAAEPEBVWSTRING@@PEAVNTFS_MASTER_FILE_TABLE@@PEAVNTFS_BITMAP@@PEAVNTFS_FILE_RECORD_SEGMENT@@PEAE4@Z
; public: unsigned char __cdecl NTFS_EXTENT_LIST::QueryLcnFromVcn(class BIG_INT,class BIG_INT * __ptr64,class BIG_INT * __ptr64)const  __ptr64
?QueryLcnFromVcn@NTFS_EXTENT_LIST@@QEBAEVBIG_INT@@PEAV2@1@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_RECORD::QueryName(class WSTRING * __ptr64)const  __ptr64
?QueryName@NTFS_ATTRIBUTE_RECORD@@QEBAEPEAVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_LIST::QueryNextEntry(struct _ATTR_LIST_CURR_ENTRY * __ptr64,unsigned long * __ptr64,class BIG_INT * __ptr64,struct _MFT_SEGMENT_REFERENCE * __ptr64,unsigned short * __ptr64,class WSTRING * __ptr64)const  __ptr64
?QueryNextEntry@NTFS_ATTRIBUTE_LIST@@QEBAEPEAU_ATTR_LIST_CURR_ENTRY@@PEAKPEAVBIG_INT@@PEAU_MFT_SEGMENT_REFERENCE@@PEAGPEAVWSTRING@@@Z
; public: unsigned long __cdecl NTFS_EXTENT_LIST::QueryNumberOfExtents(void)const  __ptr64
?QueryNumberOfExtents@NTFS_EXTENT_LIST@@QEBAKXZ
; public: static unsigned long __cdecl NTFS_SA::QuerySectorsInElementaryStructures(class DP_DRIVE const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long)
?QuerySectorsInElementaryStructures@NTFS_SA@@SAKPEBVDP_DRIVE@@KKKK@Z
; public: static struct _MFT_SEGMENT_REFERENCE  __cdecl NTFS_MFT_INFO::QuerySegmentReference(void * __ptr64)
?QuerySegmentReference@NTFS_MFT_INFO@@SA?AU_MFT_SEGMENT_REFERENCE@@PEAX@Z
; public: unsigned short __cdecl NTFS_SA::QueryVolumeFlagsAndLabel(unsigned char * __ptr64,unsigned char * __ptr64,unsigned char * __ptr64,class WSTRING * __ptr64) __ptr64
?QueryVolumeFlagsAndLabel@NTFS_SA@@QEAAGPEAE00PEAVWSTRING@@@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE::Read(void * __ptr64,class BIG_INT,unsigned long,unsigned long * __ptr64) __ptr64
?Read@NTFS_ATTRIBUTE@@QEAAEPEAXVBIG_INT@@KPEAK@Z
; public: virtual unsigned char __cdecl NTFS_FRS_STRUCTURE::Read(void) __ptr64
?Read@NTFS_FRS_STRUCTURE@@UEAAEXZ
; public: virtual unsigned char __cdecl NTFS_MFT_FILE::Read(void) __ptr64
?Read@NTFS_MFT_FILE@@UEAAEXZ
; public: unsigned char __cdecl NTFS_SA::Read(class MESSAGE * __ptr64) __ptr64
?Read@NTFS_SA@@QEAAEPEAVMESSAGE@@@Z
; public: virtual unsigned char __cdecl NTFS_SA::Read(void) __ptr64
?Read@NTFS_SA@@UEAAEXZ
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::ReadAgain(class BIG_INT) __ptr64
?ReadAgain@NTFS_FRS_STRUCTURE@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl NTFS_ATTRIBUTE_LIST::ReadList(void) __ptr64
?ReadList@NTFS_ATTRIBUTE_LIST@@QEAAEXZ
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::ReadNext(class BIG_INT) __ptr64
?ReadNext@NTFS_FRS_STRUCTURE@@QEAAEVBIG_INT@@@Z
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::ReadSet(class TLINK * __ptr64) __ptr64
?ReadSet@NTFS_FRS_STRUCTURE@@QEAAEPEAVTLINK@@@Z
; public: void __cdecl NTFS_CLUSTER_RUN::Relocate(class BIG_INT) __ptr64
?Relocate@NTFS_CLUSTER_RUN@@QEAAXVBIG_INT@@@Z
; public: void __cdecl NTFS_INDEX_TREE::ResetIterator(void) __ptr64
?ResetIterator@NTFS_INDEX_TREE@@QEAAXXZ
; public: virtual unsigned char __cdecl NTFS_ATTRIBUTE::Resize(class BIG_INT,class NTFS_BITMAP * __ptr64) __ptr64
?Resize@NTFS_ATTRIBUTE@@UEAAEVBIG_INT@@PEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::SafeQueryAttribute(unsigned long,class NTFS_ATTRIBUTE * __ptr64,class NTFS_ATTRIBUTE * __ptr64) __ptr64
?SafeQueryAttribute@NTFS_FRS_STRUCTURE@@QEAAEKPEAVNTFS_ATTRIBUTE@@0@Z
; public: unsigned char __cdecl NTFS_INDEX_TREE::Save(class NTFS_FILE_RECORD_SEGMENT * __ptr64) __ptr64
?Save@NTFS_INDEX_TREE@@QEAAEPEAVNTFS_FILE_RECORD_SEGMENT@@@Z
; public: virtual unsigned char __cdecl NTFS_ATTRIBUTE::SetSparse(class BIG_INT,class NTFS_BITMAP * __ptr64) __ptr64
?SetSparse@NTFS_ATTRIBUTE@@UEAAEVBIG_INT@@PEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_SA::SetVolumeFlag(unsigned short,unsigned char * __ptr64) __ptr64
?SetVolumeFlag@NTFS_SA@@QEAAEGPEAE@Z
; public: unsigned char __cdecl NTFS_SA::TakeCensus(class NTFS_MASTER_FILE_TABLE * __ptr64,unsigned long,struct NTFS_CENSUS_INFO * __ptr64) __ptr64
?TakeCensus@NTFS_SA@@QEAAEPEAVNTFS_MASTER_FILE_TABLE@@KPEAUNTFS_CENSUS_INFO@@@Z
; public: virtual unsigned char __cdecl NTFS_ATTRIBUTE::Write(void const * __ptr64,class BIG_INT,unsigned long,unsigned long * __ptr64,class NTFS_BITMAP * __ptr64) __ptr64
?Write@NTFS_ATTRIBUTE@@UEAAEPEBXVBIG_INT@@KPEAKPEAVNTFS_BITMAP@@@Z
; public: unsigned char __cdecl NTFS_BITMAP::Write(class NTFS_ATTRIBUTE * __ptr64,class NTFS_BITMAP * __ptr64) __ptr64
?Write@NTFS_BITMAP@@QEAAEPEAVNTFS_ATTRIBUTE@@PEAV1@@Z
; public: virtual unsigned char __cdecl NTFS_FILE_RECORD_SEGMENT::Write(void) __ptr64
?Write@NTFS_FILE_RECORD_SEGMENT@@UEAAEXZ
; public: unsigned char __cdecl NTFS_FRS_STRUCTURE::Write(void) __ptr64
?Write@NTFS_FRS_STRUCTURE@@QEAAEXZ
; public: unsigned char __cdecl NTFS_SA::WriteRemainingBootCode(void) __ptr64
?WriteRemainingBootCode@NTFS_SA@@QEAAEXZ
Chkdsk
ChkdskEx
Extend
Format
FormatEx
Recover
