Ultibo API
C/C++ API for Ultibo Core
Loading...
Searching...
No Matches
filesystem.h File Reference
#include "ultibo/globaltypes.h"
#include "ultibo/globalconst.h"
#include "ultibo/storage.h"
#include "ultibo/ultibo.h"

Go to the source code of this file.

Data Structures

struct  _STORAGE_DEVICE_EVENT
struct  _CACHE_STATISTICS
struct  _FILE_SEARCH_REC
struct  _DISK_SEARCH_REC
struct  _PARTITION_SEARCH_REC
struct  _VOLUME_SEARCH_REC
struct  _DRIVE_SEARCH_REC
struct  _IMAGE_SEARCH_REC
struct  _CATALOG_SEARCH_REC
struct  _MOUNT_SEARCH_REC
struct  _JUNCTION_SEARCH_REC
struct  _STREAM_SEARCH_REC
struct  _BIOS_PB
struct  _EXT_BIOS_PB
struct  _NTFS_BIOS_PB
struct  _PARTITION_ENTRY
struct  _PARTITION_TABLE
struct  _MASTER_BOOT_RECORD
struct  _EXT_MASTER_BOOT_RECORD
struct  _PARTITION_RECORD
struct  _BOOT_SECTOR
struct  _EXT_BOOT_SECTOR
struct  _NTFS_BOOT_SECTOR
struct  _EXTFS_BOOT_SECTOR

Macros

#define FILESYS_LOGGING_DESCRIPTION   "Filesystem Logging"
#define FILESYS_STORAGE_TIMER_INTERVAL   100
 Timer interval for device additions or insertions.
#define FILESYS_LOCK_NONE   0
#define FILESYS_LOCK_READ   1
#define FILESYS_LOCK_WRITE   2
#define FILESYS_LOCK_AUTO   3
 Not intended for use in all situations, use with extreme caution.
#define FILESYS_CACHE_THREAD_NAME   "Filesystem Cache"
 Thread name for Filesystem cache threads.
#define FILESYS_CACHE_THREAD_PRIORITY   THREAD_PRIORITY_HIGHER
 Thread priority for Filesystem cache threads.
#define FILESYS_CACHE_TIMER_INTERVAL   50
 50ms timer interval for Filesystem cache
#define FILESYS_CACHE_FLUSH_TIMEOUT   3000
 Filesystem cache flush timeout 3 seconds.
#define FILESYS_CACHE_DISCARD_TIMEOUT   180000
 Filesystem cache discard timeout 3 minutes.
#define FILESYS_ENTRY_TIMER_INTERVAL   1000
 1000ms timer interval for Filesystem entries
#define FILESYS_ENTRY_DELETE_TIMEOUT   30000
 Filesystem entry delete timeout 30 seconds.
#define CACHE_TIMER_KEY_NONE   TIMER_KEY_NONE
#define CACHE_TIMER_KEY_MAX   TIMER_KEY_MAX
#define CACHE_TIMER_KEY_MIN   TIMER_KEY_MIN
#define ENTRY_TIMER_KEY_NONE   TIMER_KEY_NONE
#define ENTRY_TIMER_KEY_MAX   TIMER_KEY_MAX
#define ENTRY_TIMER_KEY_MIN   TIMER_KEY_MIN
#define MIN_FLOPPY_DEVICE   0x00
#define MAX_FLOPPY_DEVICE   0x7F
#define MIN_FIXED_DEVICE   0x80
#define MAX_FIXED_DEVICE   0xFF
 Extends over CDROM/Other.
#define MIN_CDROM_DEVICE   0xE0
#define MAX_CDROM_DEVICE   0xEF
#define MIN_OTHER_DEVICE   0xF0
#define MAX_OTHER_DEVICE   0xFF
#define INVALID_PARTITION   -1
#define INVALID_DEVICE   -1
#define INVALID_VOLUME   0
#define MIN_PARTITION   0
#define MAX_PARTITION   3
#define MAX_EXTENDED   1
 Only 2 partitions in second level.
#define MAX_PARTITION_COUNT   4
#define MIN_FLOPPY_DRIVE   MIN_DRIVE
#define MAX_FLOPPY_DRIVE   MIN_DRIVE + 1
#define MIN_FIXED_DRIVE   MIN_DRIVE + 2
#define MAX_FIXED_DRIVE   MAX_DRIVE
#define MIN_SECTOR_SIZE   512
#define MAX_SECTOR_SIZE   4096
#define ISO_SECTOR_SIZE   2048
#define VOLUME_PREFIX   "\\Volume"
 eg \Volume1
#define EXTENDED_PREFIX   "\\Extended"
 eg \Extended1
#define PARTITION_PREFIX   "\\Partition"
 eg \Partition1
#define CONTROLLER_PREFIX   "\\Controller"
 eg \Controller0
#define CDROM_DEVICE_PREFIX   "\\Cdrom"
 eg \Cdrom0
#define OTHER_DEVICE_PREFIX   "\\Other"
 eg \Other0
#define FIXED_DEVICE_PREFIX   "\\Harddisk"
 eg \Harddisk0
#define FLOPPY_DEVICE_PREFIX   "\\Floppy"
 eg \Floppy0
#define UNKNOWN_DEVICE_PREFIX   "\\Unknown"
 eg \Unknown0
#define VOLUME_PATH_PREFIX   "\\\\?"
 eg \?\Volume1\Home
#define DEVICE_PATH_PREFIX   "\\\."
 eg \.\Harddisk0\Partition1\Home
#define REPARSE_PATH_PREFIX   "\\??\\"
#define BOOT_RECORD_SIGNATURE   0xAA55
#define PARTITION_RECORD_SIGNATURE   0xAA55
#define BOOT_SECTOR_SIGNATURE   0xAA55
#define FIND_FLAG_NONE   0x00000000
#define FIND_FLAG_FILE_NAMES   0x00000001
#define FIND_WILDCARD_NAME   "*.*"
#define FIND_WILDCARD_STREAM   "*"
#define fsFromBeginning   0
#define fsFromCurrent   1
#define fsFromEnd   2
#define fmOpenRead   0x0000
#define fmOpenWrite   0x0001
#define fmOpenReadWrite   0x0002
#define fmShareCompat   0x0000
#define fmShareExclusive   0x0010
#define fmShareDenyWrite   0x0020
#define fmShareDenyRead   0x0030
#define fmShareDenyNone   0x0040
#define fmOpenMask   0x000F
#define fmShareMask   0x00F0
#define faReadOnly   0x00000001
#define faHidden   0x00000002
#define faSysFile   0x00000004
#define faVolumeID   0x00000008
#define faDirectory   0x00000010
#define faArchive   0x00000020
#define faSymLink   0x00000400
#define faVirtual   0x00010000
#define faAnyFile   0x000001FF
#define faDot   0x01000000
#define faDotDot   0x02000000
#define faFile   0x04000000
#define faStream   0x08000000
#define faFlagName   0x00100000
 Used for FAT case flags.
#define faFlagExt   0x00200000
 Used for FAT case flags.
#define faFlagBoth   (faFlagName | faFlagExt)
#define faFlagLong   0x00400000
 Not currently used.
#define faFlagMetafile   0x00800000
 Used for NTFS Metafiles.
#define faFlagMask   0x0FFF0000
 Used to preserve internal attributes.
#define faFindMask   0x0000FFFF
 Used to mask internal attributes.
#define faMatchMask   (faFile | faStream | faVolumeID | faDirectory)
#define faDevice   0x00000040
#define faNormal   0x00000080
#define faTemporary   0x00000100
#define faSparse   0x00000200
#define faReparse   0x00000400
 See also faSymLink.
#define faCompressed   0x00000800
#define faOffline   0x00001000
#define faNotIndexed   0x00002000
#define faEncrypted   0x00004000
#define faMftDirectory   0x10000000
 Used only by FileName Attribute.
#define faMftIndexView   0x20000000
 Used by both the StandardInformation and FileName attributes.
#define faNone   0x00000000
#define faStandard   (faReadOnly | faHidden | faSysFile | faArchive)
#define faLongName   (faReadOnly | faHidden | faSysFile | faVolumeID)
#define faLongMask   (faReadOnly | faHidden | faSysFile | faVolumeID | faDirectory | faArchive)
#define vaNone   0x00000000
#define vaCaseSensitive   0x00000001
#define vaCasePreserved   0x00000002
#define vaUnicode   0x00000004
#define vaPersistentAcls   0x00000008
#define vaFileCompression   0x00000010
#define vaVolumeQuotas   0x00000020
#define vaSparseFiles   0x00000040
#define vaReparsePoints   0x00000080
#define vaRemoteStorage   0x00000100
#define vaLongNamesApi   0x00004000
#define vaVolumeCompressed   0x00008000
#define vaObjectIds   0x00010000
#define vaEncryption   0x00020000
#define vaNamedStreams   0x00040000
#define vaReadOnly   0x00080000
#define vaBootCatalog   0x01000000
 Used to indicate support for ISO Boot Catalogs.
#define vaVirtualVolume   0x02000000
 Used to indicate Volume is Virtual or on a Virtual Device.
#define vaFolderEncryption   0x04000000
 Used to indicate support for Folder Encryption (New files in folder are automatically encrypted).
#define vaFolderCompression   0x08000000
 Used to indicate support for Folder Compression (New files in folder are automatically compressed).
#define daNone   0x00000000
#define daWriteable   0x00000001
#define daVirtual   0x00000002
#define iaNone   0x00000000
#define iaDisk   0x00000001
 Memory/File/Device.
#define iaPartition   0x00000002
 Memory/File/Device.
#define iaVolume   0x00000004
 Memory/File/Device.
#define iaDrive   0x00000008
 Memory/File/Device.
#define iaCDROM   0x00000010
 Memory/File/Device/Iso.
#define iaDVD   0x00000020
 Memory/File/Device/Iso.
#define iaFlat   0x00000040
 Bochs.
#define iaSparse   0x00000080
 Bochs.
#define iaGrowing   0x00000100
 Bochs.
#define iaFixed   0x00000200
 Vpc/Vbox/Vmware.
#define iaDynamic   0x00000400
 Vpc/Vbox/Vmware.
#define iaSplit   0x00000800
 Vpc/Vmware/WIM/Ghost/Portlock/Powerquest.
#define iaUndoable   0x00001000
 Vpc/Vbox/Vmware.
#define iaReadable   0x00010000
 All.
#define iaWriteable   0x00020000
 All.
#define iaEraseable   0x00040000
 All.
#define caNone   0x00000000
#define caDefault   0x00000001
 Initial/Default Entry.
#define caBootable   0x00000002
 Boot Indicator.
#define caNoEmulation   0x00000004
 No Emulation.
#define caFloppy12M   0x00000008
 1.2M
#define caFloppy144M   0x00000010
 1.44M
#define caFloppy288M   0x00000020
 2.88M
#define caHardDisk   0x00000040
 Hard Disk.
#define NAME_HASH_SIZE   8
 Used for Internal Name Hash Generation only.
#define MAX_PARTITION_ID   255
#define pidUnused   0
 Empty.
#define pidFAT12   1
#define pidXENIXROOT   2
#define pidXENIXUSR   3
#define pidFAT16   4
 under 32M
#define pidExtended   5
#define pidFAT16HUGE   6
 over 32M
#define pidHPFSNTFS   7
#define pidAIXOS2   8
#define pidAIX   9
#define pidOS2BOOT   10
#define pidFAT32   11
#define pidFAT32LBA   12
#define pidUnknown013   13
#define pidFAT16LBA   14
#define pidExtLBA   15
#define pidOPUS   16
#define pidHIDDEN12   17
#define pidCompaqDiag   18
#define pidUnknown019   19
#define pidHIDDEN16   20
#define pidUnknown021   21
#define pidHIDDEN16HUGE   22
 ??????
#define pidHIDDENHPFS   23
#define pidASTSWAP   24
#define pidWillowtech   25
#define pidUnknown026   26
#define pidHIDDEN32   27
#define pidHIDDEN32LBA   28
#define pidUnknown029   29
#define pidHIDDEN16LBA   30
#define pidUnknown031   31
#define pidWillowsoft   32
#define pidOxygen   33
#define pidOxygenExtended   34
#define pidReserved035   35
#define pidNECMSDOS   36
#define pidUnknown037   37
#define pidUnknown038   38
#define pidUnknown039   39
#define pidUnknown040   40
#define pidUnknown041   41
#define pidUnknown042   42
#define pidUnknown043   43
#define pidUnknown044   44
#define pidUnknown045   45
#define pidUnknown046   46
#define pidUnknown047   47
#define pidUnknown048   48
#define pidReserved049   49
#define pidAlienNOS   50
#define pidReserved051   51
#define pidReserved052   52
#define pidOS2JFS   53
#define pidReserved054   54
#define pidUnknown055   55
#define pidTheos057   56
#define pidPlan9   57
#define pidTheos058   58
#define pidTheos059   59
#define pidPowerQuest   60
#define pidHiddenNetware   61
#define pidUnknown062   62
#define pidUnknown063   63
#define pidVENIX286   64
#define pidPersonalRISC   65
#define pidSFS   66
#define pidPTSDOS   67
#define pidGoBack   68
#define pidEUMEL069   69
#define pidEUMEL070   70
#define pidEUMEL071   71
#define pidEUMEL072   72
#define pidUnknown073   73
#define pidAdaOS   74
#define pidUnknown075   75
#define pidOberon   76
#define pidQNX4077   77
#define pidQNX4078   78
#define pidQNX4079   79
#define pidOnTrack080   80
#define pidNOVELL081   81
#define pidCPM   82
#define pidOnTrack083   83
#define pidOnTrack084   84
#define pidEZDrive   85
#define pidGoldenBow   86
#define pidUnknown087   87
#define pidUnknown088   88
#define pidUnknown089   89
#define pidUnknown090   90
#define pidUnknown091   91
#define pidPriamEdisk   92
#define pidUnknown093   93
#define pidUnknown094   94
#define pidUnknown095   95
#define pidUnknown096   96
#define pidSpeedStor097   97
#define pidUnknown098   98
#define pidSysV   99
#define pidNetware286   100
#define pidNWFS   101
 Traditional / Netware 6 Master.
#define pidUnknown102   102
#define pidNovell103   103
#define pidNovell104   104
#define pidNSS   105
 NSS / Netware 6.
#define pidUnknown106   106
#define pidUnknown107   107
#define pidUnknown108   108
#define pidUnknown109   109
#define pidUnknown110   110
#define pidUnknown111   111
#define pidDiskSecure   112
#define pidUnknown113   113
#define pidUnknown114   114
#define pidReserved115   115
#define pidReserved116   116
#define pidPCIX   117
#define pidReserved118   118
#define pidUnknown119   119
#define pidUnknown120   120
#define pidUnknown121   121
#define pidUnknown122   122
#define pidUnknown123   123
#define pidUnknown124   124
#define pidUnknown125   125
#define pidUnknown126   126
#define pidUnknown127   127
#define pidMinix   128
#define pidLinuxMinix   129
#define pidLinuxSwap   130
#define pidLinuxNative   131
#define pidHIDDENC   132
#define pidLinuxExtended   133
#define pidFAT16Stripe   134
#define pidNTFSStripe   135
#define pidUnknown136   136
#define pidUnknown137   137
#define pidUnknown138   138
#define pidUnknown139   139
#define pidUnknown140   140
#define pidUnknown141   141
#define pidUnknown142   142
#define pidUnknown143   143
#define pidUnknown144   144
#define pidUnknown145   145
#define pidUnknown146   146
#define pidAmoeba   147
#define pidAmoebaBBT   148
#define pidUnknown149   149
#define pidUnknown150   150
#define pidUnknown151   151
#define pidUnknown152   152
#define pidUnknown153   153
#define pidUnknown154   154
#define pidUnknown155   155
#define pidUnknown156   156
#define pidUnknown157   157
#define pidUnknown158   158
#define pidUnknown159   159
#define pidPhoenixPM   160
#define pidReserved161   161
#define pidUnknown162   162
#define pidReserved163   163
#define pidReserved164   164
#define pidFreeBSD   165
#define pidOpenBSD   166
#define pidNeXTStep   167
#define pidUnknown168   168
#define pidUnknown169   169
#define pidUnknown170   170
#define pidDarwinBoot   171
#define pidUnknown172   172
#define pidUnknown173   173
#define pidUnknown174   174
#define pidUnknown175   175
#define pidUnknown176   176
#define pidUnknown177   177
#define pidUnknown178   178
#define pidUnknown179   179
#define pidReserved180   180
#define pidUnknown181   181
#define pidFAT16MirrorA   182
#define pidNTFSMirrorA   183
#define pidBSDIswap   184
#define pidUnknown185   185
#define pidUnknown186   186
#define pidUnknown187   187
#define pidUnknown188   188
#define pidUnknown189   189
#define pidUnknown190   190
#define pidUnknown191   191
#define pidUnknown192   192
#define pidDRDOSFAT12   193
#define pidUnknown194   194
#define pidUnknown195   195
#define pidDRDOSFAT16   196
#define pidUnknown197   197
#define pidFAT16MirrorB   198
#define pidNTFSMirrorB   199
#define pidUnknown200   200
#define pidUnknown201   201
#define pidUnknown202   202
#define pidUnknown203   203
#define pidUnknown204   204
#define pidUnknown205   205
#define pidUnknown206   206
#define pidUnknown207   207
#define pidUnknown208   208
#define pidUnknown209   209
#define pidTinyEFAT   210
#define pidEFAT   211
#define pidSecuredEFAT   212
#define pidOpticalEFAT   213
#define pidUnknown214   214
#define pidUnknown215   215
#define pidCPM86   216
#define pidUnknown217   217
#define pidUnknown218   218
#define pidConcurrentCPM   219
#define pidUnknown220   220
#define pidUnknown221   221
#define pidUnknown222   222
#define pidUnknown223   223
#define pidUnknown224   224
#define pidSpeedStorFAT12   225
#define pidUnknown226   226
#define pidUnknown227   227
#define pidSpeedStorFAT16   228
#define pidReserved229   229
#define pidReserved230   230
#define pidUnknown231   231
#define pidUnknown232   232
#define pidUnknown233   233
#define pidUnknown234   234
#define pidBeOSBFS1   235
#define pidUnknown236   236
#define pidUnknown237   237
#define pidUnknown238   238
#define pidUnknown239   239
#define pidLinuxRISC   240
#define pidStorageDimension   241
#define pidDOS33Secondary   242
#define pidSpeedStor243   243
#define pidSpeedStor244   244
#define pidPrologue   245
#define pidSpeedStor246   246
#define pidOSGEFAT   247
#define pidUnknown248   248
#define pidUnknown249   249
#define pidBochsX86   250
#define pidVMware   251
#define pidVMwareSwap   252
#define pidLinuxRAID   253
#define pidLANstep   254
#define pidXenixBBT   255
#define FILESYS_ATA_DEVICE_DESCRIPTION   "ATA Storage Device"
#define FILESYS_ATAPI_DEVICE_DESCRIPTION   "ATAPI Storage Device"
#define FILESYS_SCSI_DEVICE_DESCRIPTION   "SCSI Storage Device"
#define FILESYS_USB_DEVICE_DESCRIPTION   "USB Storage Device"
#define FILESYS_MMC_DEVICE_DESCRIPTION   "MMC/SD Storage Device"
#define FILESYS_ATA_CONTROLLER_DESCRIPTION   "ATA Storage Controller"
#define FILESYS_ATAPI_CONTROLLER_DESCRIPTION   "ATAPI Storage Controller"
#define FILESYS_SCSI_CONTROLLER_DESCRIPTION   "SCSI Storage Controller"
#define FILESYS_USB_CONTROLLER_DESCRIPTION   "USB Storage Controller"
#define FILESYS_MMC_CONTROLLER_DESCRIPTION   "MMC/SD Storage Controller"

Typedefs

typedef struct _STORAGE_DEVICE_EVENT STORAGE_DEVICE_EVENT
typedef enum _MEDIA_TYPE MEDIA_TYPE
typedef enum _FLOPPY_TYPE FLOPPY_TYPE
typedef enum _IMAGE_TYPE IMAGE_TYPE
typedef enum _CACHE_STATE CACHE_STATE
typedef enum _CACHE_MODE CACHE_MODE
typedef enum _CACHE_PAGE_TYPE CACHE_PAGE_TYPE
typedef enum _CACHE_PAGE_STATE CACHE_PAGE_STATE
typedef enum _CACHE_PAGE_CONTENT CACHE_PAGE_CONTENT
typedef struct _CACHE_STATISTICS CACHE_STATISTICS
typedef struct _FILE_SEARCH_REC FILE_SEARCH_REC
typedef struct _DISK_SEARCH_REC DISK_SEARCH_REC
typedef struct _PARTITION_SEARCH_REC PARTITION_SEARCH_REC
typedef struct _VOLUME_SEARCH_REC VOLUME_SEARCH_REC
typedef struct _DRIVE_SEARCH_REC DRIVE_SEARCH_REC
typedef struct _IMAGE_SEARCH_REC IMAGE_SEARCH_REC
typedef struct _CATALOG_SEARCH_REC CATALOG_SEARCH_REC
typedef struct _MOUNT_SEARCH_REC MOUNT_SEARCH_REC
typedef struct _JUNCTION_SEARCH_REC JUNCTION_SEARCH_REC
typedef struct _STREAM_SEARCH_REC STREAM_SEARCH_REC
typedef struct _LINK_SEARCH_REC LINK_SEARCH_REC
typedef struct _BIOS_PB BIOS_PB
typedef struct _EXT_BIOS_PB EXT_BIOS_PB
typedef struct _NTFS_BIOS_PB NTFS_BIOS_PB
typedef struct _PARTITION_ENTRY PARTITION_ENTRY
typedef struct _PARTITION_TABLE PARTITION_TABLE
typedef uint8_t MASTER_BOOT_CODE[446]
typedef struct _MASTER_BOOT_RECORD MASTER_BOOT_RECORD
typedef uint8_t EXT_MASTER_BOOT_CODE[440]
typedef struct _EXT_MASTER_BOOT_RECORD EXT_MASTER_BOOT_RECORD
typedef struct _PARTITION_RECORD PARTITION_RECORD
typedef uint8_t DISK_SECTOR[512]
typedef uint8_t BOOT_SECTOR_JUMP[3]
typedef uint8_t BOOT_SECTOR_CODE[448]
typedef struct _BOOT_SECTOR BOOT_SECTOR
typedef uint8_t EXT_BOOT_SECTOR_JUMP[3]
typedef uint8_t EXT_BOOT_SECTOR_CODE[420]
typedef struct _EXT_BOOT_SECTOR EXT_BOOT_SECTOR
typedef uint8_t NTFS_BOOT_SECTOR_JUMP[3]
typedef uint8_t NTFS_BOOT_SECTOR_CODE[426]
typedef struct _NTFS_BOOT_SECTOR NTFS_BOOT_SECTOR
typedef struct _EXTFS_BOOT_SECTOR EXTFS_BOOT_SECTOR

Enumerations

enum  _MEDIA_TYPE {
  mtUNKNOWN , mtINVALID , mtFLOPPY , mtFIXED ,
  mtREMOVABLE , mtCDROM , mtDVD , mtOTHER
}
enum  _FLOPPY_TYPE {
  ftUNKNOWN , ftINVALID , ft360K , ft12M ,
  ft720K , ft144M , ft288M , ftATAPI
}
enum  _IMAGE_TYPE {
  itUNKNOWN , itINVALID , itMEMORY , itFILE ,
  itDEVICE , itISO , itBOCHS , itVMWARE ,
  itVPC , itVBOX
}
enum  _CACHE_STATE { csCLEAN , csDIRTY }
enum  _CACHE_MODE { cmNONE , cmREADONLY , cmREADWRITE }
enum  _CACHE_PAGE_TYPE { ptNONE , ptDEVICE }
enum  _CACHE_PAGE_STATE { psUNKNOWN , psEMPTY , psCLEAN , psDIRTY }
enum  _CACHE_PAGE_CONTENT {
  pcUNKNOWN , pcDATA , pcDIRECTORY , pcENTRY ,
  pcSYSTEM
}

Functions

uint32_t STDCALL file_sys_start (void)
uint32_t STDCALL file_sys_stop (void)
BOOL STDCALL file_sys_start_completed (void)
 Returns True if the filesystem has been started.
void STDCALL file_sys_async_start (void *data)
uint8_t STDCALL GetPathDrive (const char *path)
DRIVE_TYPE STDCALL GetDriveType (uint8_t drive)
void STDCALL GetDriveData (uint8_t drive, DRIVE_DATA *data)
uint32_t STDCALL GetDriveAttr (uint8_t drive)
uint32_t STDCALL GetDriveLabel (uint8_t drive, char *label, uint32_t len)
BOOL STDCALL SetDriveLabel (uint8_t drive, const char *label)
uint32_t STDCALL GetDriveSerial (uint8_t drive)
BOOL STDCALL SetDriveSerial (uint8_t drive, uint32_t serial)
BOOL STDCALL IsDriveValid (uint8_t drive)
uint32_t STDCALL GetValidDrives (void)
uint32_t STDCALL GetValidDriveNames (char *names, uint32_t len)
uint32_t STDCALL GetDriveFreeSpace (uint8_t drive)
int64_t STDCALL GetDriveFreeSpaceEx (uint8_t drive)
uint32_t STDCALL GetDriveTotalSpace (uint8_t drive)
int64_t STDCALL GetDriveTotalSpaceEx (uint8_t drive)
BOOL STDCALL GetDriveInformation (const char *path, uint32_t *clustersize, int64_t *totalclustercount, int64_t *freeclustercount)
uint8_t STDCALL GetCurrentDrive (void)
BOOL STDCALL SetCurrentDrive (const char *drive)
HANDLE STDCALL FileOpen (const char *filename, int mode)
HANDLE STDCALL FileCreate (const char *filename)
BOOL STDCALL DeleteFile (const char *filename)
void STDCALL FileClose (HANDLE handle)
BOOL STDCALL RenameFile (const char *oldname, const char *newname)
int32_t STDCALL FileSeek (HANDLE handle, int32_t offset, int32_t origin)
BOOL STDCALL FileFlush (HANDLE handle)
BOOL STDCALL FileTruncate (HANDLE handle)
BOOL STDCALL SetEndOfFile (HANDLE handle)
BOOL STDCALL EndOfFile (HANDLE handle)
int32_t STDCALL FilePos (HANDLE handle)
int32_t STDCALL FileSize (HANDLE handle)
int STDCALL FileAge (const char *filename)
BOOL STDCALL FileExists (const char *filename)
int STDCALL FileGetAttr (const char *filename)
int STDCALL FileGetDate (HANDLE handle)
int STDCALL FileSetAttr (const char *filename, int attr)
int STDCALL FileSetDate (HANDLE handle, int age)
int32_t STDCALL FileRead (HANDLE handle, void *buffer, int32_t count)
int32_t STDCALL FileWrite (HANDLE handle, void *buffer, int32_t count)
BOOL STDCALL CreateDir (const char *dirname)
BOOL STDCALL RemoveDir (const char *dirname)
BOOL STDCALL RenameDir (const char *oldname, const char *newname)
uint32_t STDCALL GetCurrentDir (char *dirname, uint32_t len)
BOOL STDCALL SetCurrentDir (const char *dirname)
BOOL STDCALL DirectoryExists (const char *dirname)
void STDCALL ForceDirectories (char *dirname)
void STDCALL DeleteTree (const char *dirname)
BOOL STDCALL FileCopy (const char *sourcefile, const char *destfile, BOOL failifexists)
BOOL STDCALL FileCopyEx (const char *sourcefile, const char *destfile, BOOL failifexists, BOOL usesourcedate, int destdate, BOOL usesourceattr, int destattr)
uint32_t STDCALL GetShortName (const char *filename, char *shortname, uint32_t len)
uint32_t STDCALL GetLongName (const char *filename, char *longname, uint32_t len)
uint32_t STDCALL GetTrueName (const char *filename, char *truename, uint32_t len)
int64_t STDCALL FileSeekEx (HANDLE handle, int64_t offset, int32_t origin)
BOOL STDCALL EndOfFileEx (HANDLE handle)
int64_t STDCALL FilePosEx (HANDLE handle)
int64_t STDCALL FileSizeEx (HANDLE handle)
FILETIME STDCALL FileAgeEx (const char *filename)
int STDCALL FileGetAttrEx (HANDLE handle)
FILETIME STDCALL FileGetDateEx (HANDLE handle)
int STDCALL FileSetDateEx (HANDLE handle, FILETIME age)
BOOL STDCALL GetFileTime (HANDLE handle, FILETIME *createtime, FILETIME *accesstime, FILETIME *writetime)
BOOL STDCALL SetFileTime (HANDLE handle, FILETIME *createtime, FILETIME *accesstime, FILETIME *writetime)
int STDCALL FindFirstEx (const char *path, FILE_SEARCH_REC *searchrec)
int STDCALL FindNextEx (FILE_SEARCH_REC *searchrec)
void STDCALL FindCloseEx (FILE_SEARCH_REC *searchrec)
BOOL STDCALL DefineDosDevice (uint32_t dwflags, const char *lpdevicename, const char *lptargetpath)
UINT STDCALL GetDiskType (const char *lprootpathname)
 GetDriveType - Already defined above.
BOOL STDCALL GetDiskFreeSpace (const char *lprootpathname, uint32_t *lpsectorspercluster, uint32_t *lpbytespersector, uint32_t *lpnumberoffreeclusters, uint32_t *lptotalnumberofclusters)
BOOL STDCALL GetDiskFreeSpaceEx (const char *lpdirectoryname, ULARGE_INTEGER *lpfreebytesavailabletocaller, ULARGE_INTEGER *lptotalnumberofbytes, ULARGE_INTEGER *lptotalnumberoffreebytes)
uint32_t STDCALL GetLogicalDrives (void)
uint32_t STDCALL GetLogicalDriveStrings (uint32_t nbufferlength, char *lpbuffer)
BOOL STDCALL GetVolumeInformation (const char *lprootpathname, char *lpvolumenamebuffer, uint32_t nvolumenamesize, DWORD *lpvolumeserialnumber, uint32_t *lpmaximumcomponentlength, uint32_t *lpfilesystemflags, char *lpfilesystemnamebuffer, uint32_t nfilesystemnamesize)
uint32_t STDCALL QueryDosDevice (const char *lpdevicename, char *lptargetpath, uint32_t ucchmax)
BOOL STDCALL SetVolumeLabel (const char *lprootpathname, const char *lpvolumename)
BOOL STDCALL AreFileApisANSI (void)
BOOL STDCALL CloseHandle (HANDLE hobject)
BOOL STDCALL CopyFile (const char *lpexistingfilename, const char *lpnewfilename, BOOL bfailifexists)
HANDLE STDCALL CreateFile (const char *lpfilename, uint32_t dwdesiredaccess, uint32_t dwsharemode, SECURITY_ATTRIBUTES *lpsecurityattributes, uint32_t dwcreationdisposition, uint32_t dwflagsandattributes, HANDLE htemplatefile)
BOOL STDCALL FindCloseFile (HANDLE hfindfile)
HANDLE STDCALL FindFirstFile (const char *lpfilename, WIN32_FIND_DATAA *lpfindfiledata)
BOOL STDCALL FindNextFile (HANDLE hfindfile, WIN32_FIND_DATAA *lpfindfiledata)
BOOL STDCALL FlushFileBuffers (HANDLE hfile)
uint32_t STDCALL GetFileAttributes (const char *lpfilename)
BOOL STDCALL GetFileInformationByHandle (HANDLE hfile, BY_HANDLE_FILE_INFORMATION *lpfileinformation)
uint32_t STDCALL GetFileSize (HANDLE hfile, DWORD *lpfilesizehigh)
uint32_t STDCALL GetFullPathName (const char *lpfilename, uint32_t nbufferlength, char *lpbuffer, char *lpfilepart)
uint32_t STDCALL GetShortPathName (const char *lpszlongpath, char *lpszshortpath, uint32_t cchbuffer)
BOOL STDCALL MoveFile (const char *lpexistingfilename, const char *lpnewfilename)
BOOL STDCALL ReadFile (HANDLE hfile, void *lpbuffer, uint32_t nnumberofbytestoread, DWORD *lpnumberofbytesread, OVERLAPPED *lpoverlapped)
void STDCALL SetFileApisToANSI (void)
void STDCALL SetFileApisToOEM (void)
BOOL STDCALL SetFileAttributes (const char *lpfilename, uint32_t dwfileattributes)
uint32_t STDCALL SetFilePointer (HANDLE hfile, long ldistancetomove, long *lpdistancetomovehigh, uint32_t dwmovemethod)
BOOL STDCALL SetFilePointerEx (HANDLE hfile, LARGE_INTEGER lidistancetomove, LARGE_INTEGER *lpnewfilepointer, uint32_t dwmovemethod)
BOOL STDCALL WriteFile (HANDLE hfile, void *lpbuffer, uint32_t nnumberofbytestowrite, DWORD *lpnumberofbyteswritten, OVERLAPPED *lpoverlapped)
uint32_t STDCALL GetLongPathName (const char *lpszshortpath, char *lpszlongpath, uint32_t cchbuffer)
uint32_t STDCALL GetFinalPathNameByHandle (HANDLE hfile, char *lpszFilePath, uint32_t cchFilePath, uint32_t dwFlags)
BOOL STDCALL SetFileShortName (HANDLE hfile, const char *lpshortname)
BOOL STDCALL CreateHardLink (const char *lpfilename, const char *lpexistingfilename, SECURITY_ATTRIBUTES *lpsecurityattributes)
BOOL STDCALL CreateSymbolicLink (const char *lpsymlinkfilename, const char *lptargetfilename, uint32_t dwflags)
BOOL STDCALL CreateDirectory (const char *lppathname, SECURITY_ATTRIBUTES *lpsecurityattributes)
uint32_t STDCALL GetCurrentDirectory (uint32_t nbufferlength, char *lpbuffer)
BOOL STDCALL RemoveDirectory (const char *lppathname)
BOOL STDCALL SetCurrentDirectory (const char *lppathname)
BOOL STDCALL file_sys_redirect_input (HANDLE handle)
 Redirect standard input to the file specified by Handle.
BOOL STDCALL file_sys_redirect_output (HANDLE handle)
 Redirect standard output to the file specified by Handle.
int STDCALL compare_partitions (void *partition1, void *partition2)
 Sort partitions in order of start sector.
uint32_t STDCALL disk_media_type_to_string (MEDIA_TYPE _type, char *string, uint32_t len)
uint32_t STDCALL floppy_type_to_string (FLOPPY_TYPE _type, char *string, uint32_t len)
uint32_t STDCALL image_type_to_string (IMAGE_TYPE _type, char *string, uint32_t len)
uint32_t STDCALL drive_type_to_string (DRIVE_TYPE _type, char *string, uint32_t len)
uint32_t STDCALL file_sys_type_to_string (FILE_SYS_TYPE _type, char *string, uint32_t len)
FILE_SYS_TYPE STDCALL string_to_file_sys_type (char *filesystype)
uint32_t STDCALL partition_id_to_string (uint8_t id, char *string, uint32_t len)
uint8_t STDCALL string_to_partition_id (char *partitionid)
uint32_t STDCALL cache_mode_to_string (CACHE_MODE cachemode, char *string, uint32_t len)
CACHE_MODE STDCALL const_to_cache_mode (uint32_t cachemode)
 Convert a cache mode constant to a cache mode enum.
CACHE_MODE STDCALL string_to_cache_mode (char *cachemode)
 Convert a string value to a cache mode enum.
uint32_t STDCALL cache_state_to_string (CACHE_STATE cachestate, char *string, uint32_t len)

Macro Definition Documentation

◆ FILESYS_LOGGING_DESCRIPTION

#define FILESYS_LOGGING_DESCRIPTION   "Filesystem Logging"

FileSystem specific constants

◆ FILESYS_STORAGE_TIMER_INTERVAL

#define FILESYS_STORAGE_TIMER_INTERVAL   100

Timer interval for device additions or insertions.

◆ FILESYS_LOCK_NONE

#define FILESYS_LOCK_NONE   0

FileSystem Lock States

◆ FILESYS_LOCK_READ

#define FILESYS_LOCK_READ   1

◆ FILESYS_LOCK_WRITE

#define FILESYS_LOCK_WRITE   2

◆ FILESYS_LOCK_AUTO

#define FILESYS_LOCK_AUTO   3

Not intended for use in all situations, use with extreme caution.

◆ FILESYS_CACHE_THREAD_NAME

#define FILESYS_CACHE_THREAD_NAME   "Filesystem Cache"

Thread name for Filesystem cache threads.

FileSystem Cache

◆ FILESYS_CACHE_THREAD_PRIORITY

#define FILESYS_CACHE_THREAD_PRIORITY   THREAD_PRIORITY_HIGHER

Thread priority for Filesystem cache threads.

◆ FILESYS_CACHE_TIMER_INTERVAL

#define FILESYS_CACHE_TIMER_INTERVAL   50

50ms timer interval for Filesystem cache

◆ FILESYS_CACHE_FLUSH_TIMEOUT

#define FILESYS_CACHE_FLUSH_TIMEOUT   3000

Filesystem cache flush timeout 3 seconds.

◆ FILESYS_CACHE_DISCARD_TIMEOUT

#define FILESYS_CACHE_DISCARD_TIMEOUT   180000

Filesystem cache discard timeout 3 minutes.

◆ FILESYS_ENTRY_TIMER_INTERVAL

#define FILESYS_ENTRY_TIMER_INTERVAL   1000

1000ms timer interval for Filesystem entries

Entry Timer

◆ FILESYS_ENTRY_DELETE_TIMEOUT

#define FILESYS_ENTRY_DELETE_TIMEOUT   30000

Filesystem entry delete timeout 30 seconds.

◆ CACHE_TIMER_KEY_NONE

#define CACHE_TIMER_KEY_NONE   TIMER_KEY_NONE

Cache Timer

◆ CACHE_TIMER_KEY_MAX

#define CACHE_TIMER_KEY_MAX   TIMER_KEY_MAX

◆ CACHE_TIMER_KEY_MIN

#define CACHE_TIMER_KEY_MIN   TIMER_KEY_MIN

◆ ENTRY_TIMER_KEY_NONE

#define ENTRY_TIMER_KEY_NONE   TIMER_KEY_NONE

Entry Timer

◆ ENTRY_TIMER_KEY_MAX

#define ENTRY_TIMER_KEY_MAX   TIMER_KEY_MAX

◆ ENTRY_TIMER_KEY_MIN

#define ENTRY_TIMER_KEY_MIN   TIMER_KEY_MIN

◆ MIN_FLOPPY_DEVICE

#define MIN_FLOPPY_DEVICE   0x00

Partition, Device, Volume constants

◆ MAX_FLOPPY_DEVICE

#define MAX_FLOPPY_DEVICE   0x7F

◆ MIN_FIXED_DEVICE

#define MIN_FIXED_DEVICE   0x80

◆ MAX_FIXED_DEVICE

#define MAX_FIXED_DEVICE   0xFF

Extends over CDROM/Other.

◆ MIN_CDROM_DEVICE

#define MIN_CDROM_DEVICE   0xE0

◆ MAX_CDROM_DEVICE

#define MAX_CDROM_DEVICE   0xEF

◆ MIN_OTHER_DEVICE

#define MIN_OTHER_DEVICE   0xF0

◆ MAX_OTHER_DEVICE

#define MAX_OTHER_DEVICE   0xFF

◆ INVALID_PARTITION

#define INVALID_PARTITION   -1

◆ INVALID_DEVICE

#define INVALID_DEVICE   -1

◆ INVALID_VOLUME

#define INVALID_VOLUME   0

◆ MIN_PARTITION

#define MIN_PARTITION   0

◆ MAX_PARTITION

#define MAX_PARTITION   3

◆ MAX_EXTENDED

#define MAX_EXTENDED   1

Only 2 partitions in second level.

◆ MAX_PARTITION_COUNT

#define MAX_PARTITION_COUNT   4

◆ MIN_FLOPPY_DRIVE

#define MIN_FLOPPY_DRIVE   MIN_DRIVE

◆ MAX_FLOPPY_DRIVE

#define MAX_FLOPPY_DRIVE   MIN_DRIVE + 1

◆ MIN_FIXED_DRIVE

#define MIN_FIXED_DRIVE   MIN_DRIVE + 2

◆ MAX_FIXED_DRIVE

#define MAX_FIXED_DRIVE   MAX_DRIVE

◆ MIN_SECTOR_SIZE

#define MIN_SECTOR_SIZE   512

◆ MAX_SECTOR_SIZE

#define MAX_SECTOR_SIZE   4096

◆ ISO_SECTOR_SIZE

#define ISO_SECTOR_SIZE   2048

◆ VOLUME_PREFIX

#define VOLUME_PREFIX   "\\Volume"

eg \Volume1

◆ EXTENDED_PREFIX

#define EXTENDED_PREFIX   "\\Extended"

eg \Extended1

◆ PARTITION_PREFIX

#define PARTITION_PREFIX   "\\Partition"

eg \Partition1

◆ CONTROLLER_PREFIX

#define CONTROLLER_PREFIX   "\\Controller"

eg \Controller0

◆ CDROM_DEVICE_PREFIX

#define CDROM_DEVICE_PREFIX   "\\Cdrom"

eg \Cdrom0

◆ OTHER_DEVICE_PREFIX

#define OTHER_DEVICE_PREFIX   "\\Other"

eg \Other0

◆ FIXED_DEVICE_PREFIX

#define FIXED_DEVICE_PREFIX   "\\Harddisk"

eg \Harddisk0

◆ FLOPPY_DEVICE_PREFIX

#define FLOPPY_DEVICE_PREFIX   "\\Floppy"

eg \Floppy0

◆ UNKNOWN_DEVICE_PREFIX

#define UNKNOWN_DEVICE_PREFIX   "\\Unknown"

eg \Unknown0

◆ VOLUME_PATH_PREFIX

#define VOLUME_PATH_PREFIX   "\\\\?"

eg \?\Volume1\Home

◆ DEVICE_PATH_PREFIX

#define DEVICE_PATH_PREFIX   "\\\."

eg \.\Harddisk0\Partition1\Home

◆ REPARSE_PATH_PREFIX

#define REPARSE_PATH_PREFIX   "\\??\\"

◆ BOOT_RECORD_SIGNATURE

#define BOOT_RECORD_SIGNATURE   0xAA55

◆ PARTITION_RECORD_SIGNATURE

#define PARTITION_RECORD_SIGNATURE   0xAA55

◆ BOOT_SECTOR_SIGNATURE

#define BOOT_SECTOR_SIGNATURE   0xAA55

◆ FIND_FLAG_NONE

#define FIND_FLAG_NONE   0x00000000

Find Flags

◆ FIND_FLAG_FILE_NAMES

#define FIND_FLAG_FILE_NAMES   0x00000001

◆ FIND_WILDCARD_NAME

#define FIND_WILDCARD_NAME   "*.*"

Find Wildcards

◆ FIND_WILDCARD_STREAM

#define FIND_WILDCARD_STREAM   "*"

◆ fsFromBeginning

#define fsFromBeginning   0

File Seek origins

◆ fsFromCurrent

#define fsFromCurrent   1

◆ fsFromEnd

#define fsFromEnd   2

◆ fmOpenRead

#define fmOpenRead   0x0000

File Mode constants

◆ fmOpenWrite

#define fmOpenWrite   0x0001

◆ fmOpenReadWrite

#define fmOpenReadWrite   0x0002

◆ fmShareCompat

#define fmShareCompat   0x0000

◆ fmShareExclusive

#define fmShareExclusive   0x0010

◆ fmShareDenyWrite

#define fmShareDenyWrite   0x0020

◆ fmShareDenyRead

#define fmShareDenyRead   0x0030

◆ fmShareDenyNone

#define fmShareDenyNone   0x0040

◆ fmOpenMask

#define fmOpenMask   0x000F

◆ fmShareMask

#define fmShareMask   0x00F0

◆ faReadOnly

#define faReadOnly   0x00000001

File Attribute constants

◆ faHidden

#define faHidden   0x00000002

◆ faSysFile

#define faSysFile   0x00000004

◆ faVolumeID

#define faVolumeID   0x00000008

◆ faDirectory

#define faDirectory   0x00000010

◆ faArchive

#define faArchive   0x00000020

◆ faSymLink

#define faSymLink   0x00000400

◆ faVirtual

#define faVirtual   0x00010000

◆ faAnyFile

#define faAnyFile   0x000001FF

◆ faDot

#define faDot   0x01000000

◆ faDotDot

#define faDotDot   0x02000000

◆ faFile

#define faFile   0x04000000

◆ faStream

#define faStream   0x08000000

◆ faFlagName

#define faFlagName   0x00100000

Used for FAT case flags.

◆ faFlagExt

#define faFlagExt   0x00200000

Used for FAT case flags.

◆ faFlagBoth

#define faFlagBoth   (faFlagName | faFlagExt)

◆ faFlagLong

#define faFlagLong   0x00400000

Not currently used.

◆ faFlagMetafile

#define faFlagMetafile   0x00800000

Used for NTFS Metafiles.

◆ faFlagMask

#define faFlagMask   0x0FFF0000

Used to preserve internal attributes.

◆ faFindMask

#define faFindMask   0x0000FFFF

Used to mask internal attributes.

◆ faMatchMask

#define faMatchMask   (faFile | faStream | faVolumeID | faDirectory)

◆ faDevice

#define faDevice   0x00000040

Additional File Attribute Flags for NTFS/EXTFS/NSS

◆ faNormal

#define faNormal   0x00000080

◆ faTemporary

#define faTemporary   0x00000100

◆ faSparse

#define faSparse   0x00000200

◆ faReparse

#define faReparse   0x00000400

See also faSymLink.

◆ faCompressed

#define faCompressed   0x00000800

◆ faOffline

#define faOffline   0x00001000

◆ faNotIndexed

#define faNotIndexed   0x00002000

◆ faEncrypted

#define faEncrypted   0x00004000

◆ faMftDirectory

#define faMftDirectory   0x10000000

Used only by FileName Attribute.

◆ faMftIndexView

#define faMftIndexView   0x20000000

Used by both the StandardInformation and FileName attributes.

◆ faNone

#define faNone   0x00000000

Note: NTFS does not store the faVolumeID or faDirectory attributes Additional File Attribute constants

◆ faStandard

#define faStandard   (faReadOnly | faHidden | faSysFile | faArchive)

◆ faLongName

#define faLongName   (faReadOnly | faHidden | faSysFile | faVolumeID)

◆ faLongMask

#define faLongMask   (faReadOnly | faHidden | faSysFile | faVolumeID | faDirectory | faArchive)

◆ vaNone

#define vaNone   0x00000000

Volume Attribute constants

◆ vaCaseSensitive

#define vaCaseSensitive   0x00000001

◆ vaCasePreserved

#define vaCasePreserved   0x00000002

◆ vaUnicode

#define vaUnicode   0x00000004

◆ vaPersistentAcls

#define vaPersistentAcls   0x00000008

◆ vaFileCompression

#define vaFileCompression   0x00000010

◆ vaVolumeQuotas

#define vaVolumeQuotas   0x00000020

◆ vaSparseFiles

#define vaSparseFiles   0x00000040

◆ vaReparsePoints

#define vaReparsePoints   0x00000080

◆ vaRemoteStorage

#define vaRemoteStorage   0x00000100

◆ vaLongNamesApi

#define vaLongNamesApi   0x00004000

◆ vaVolumeCompressed

#define vaVolumeCompressed   0x00008000

◆ vaObjectIds

#define vaObjectIds   0x00010000

◆ vaEncryption

#define vaEncryption   0x00020000

◆ vaNamedStreams

#define vaNamedStreams   0x00040000

◆ vaReadOnly

#define vaReadOnly   0x00080000

◆ vaBootCatalog

#define vaBootCatalog   0x01000000

Used to indicate support for ISO Boot Catalogs.

Additional Volume Attribute constants

◆ vaVirtualVolume

#define vaVirtualVolume   0x02000000

Used to indicate Volume is Virtual or on a Virtual Device.

◆ vaFolderEncryption

#define vaFolderEncryption   0x04000000

Used to indicate support for Folder Encryption (New files in folder are automatically encrypted).

◆ vaFolderCompression

#define vaFolderCompression   0x08000000

Used to indicate support for Folder Compression (New files in folder are automatically compressed).

◆ daNone

#define daNone   0x00000000

Device Attribute constants

◆ daWriteable

#define daWriteable   0x00000001

◆ daVirtual

#define daVirtual   0x00000002

◆ iaNone

#define iaNone   0x00000000

Image Attribute constants

◆ iaDisk

#define iaDisk   0x00000001

Memory/File/Device.

◆ iaPartition

#define iaPartition   0x00000002

Memory/File/Device.

◆ iaVolume

#define iaVolume   0x00000004

Memory/File/Device.

◆ iaDrive

#define iaDrive   0x00000008

Memory/File/Device.

◆ iaCDROM

#define iaCDROM   0x00000010

Memory/File/Device/Iso.

◆ iaDVD

#define iaDVD   0x00000020

Memory/File/Device/Iso.

◆ iaFlat

#define iaFlat   0x00000040

Bochs.

◆ iaSparse

#define iaSparse   0x00000080

Bochs.

◆ iaGrowing

#define iaGrowing   0x00000100

Bochs.

◆ iaFixed

#define iaFixed   0x00000200

Vpc/Vbox/Vmware.

◆ iaDynamic

#define iaDynamic   0x00000400

Vpc/Vbox/Vmware.

◆ iaSplit

#define iaSplit   0x00000800

Vpc/Vmware/WIM/Ghost/Portlock/Powerquest.

◆ iaUndoable

#define iaUndoable   0x00001000

Vpc/Vbox/Vmware.

◆ iaReadable

#define iaReadable   0x00010000

All.

◆ iaWriteable

#define iaWriteable   0x00020000

All.

◆ iaEraseable

#define iaEraseable   0x00040000

All.

◆ caNone

#define caNone   0x00000000

Catalog Attribute constants

◆ caDefault

#define caDefault   0x00000001

Initial/Default Entry.

◆ caBootable

#define caBootable   0x00000002

Boot Indicator.

◆ caNoEmulation

#define caNoEmulation   0x00000004

No Emulation.

◆ caFloppy12M

#define caFloppy12M   0x00000008

1.2M

◆ caFloppy144M

#define caFloppy144M   0x00000010

1.44M

◆ caFloppy288M

#define caFloppy288M   0x00000020

2.88M

◆ caHardDisk

#define caHardDisk   0x00000040

Hard Disk.

◆ NAME_HASH_SIZE

#define NAME_HASH_SIZE   8

Used for Internal Name Hash Generation only.

Misc constants

◆ MAX_PARTITION_ID

#define MAX_PARTITION_ID   255

Partition Ids

◆ pidUnused

#define pidUnused   0

Empty.

◆ pidFAT12

#define pidFAT12   1

◆ pidXENIXROOT

#define pidXENIXROOT   2

◆ pidXENIXUSR

#define pidXENIXUSR   3

◆ pidFAT16

#define pidFAT16   4

under 32M

◆ pidExtended

#define pidExtended   5

◆ pidFAT16HUGE

#define pidFAT16HUGE   6

over 32M

◆ pidHPFSNTFS

#define pidHPFSNTFS   7

◆ pidAIXOS2

#define pidAIXOS2   8

◆ pidAIX

#define pidAIX   9

◆ pidOS2BOOT

#define pidOS2BOOT   10

◆ pidFAT32

#define pidFAT32   11

◆ pidFAT32LBA

#define pidFAT32LBA   12

◆ pidUnknown013

#define pidUnknown013   13

◆ pidFAT16LBA

#define pidFAT16LBA   14

◆ pidExtLBA

#define pidExtLBA   15

◆ pidOPUS

#define pidOPUS   16

◆ pidHIDDEN12

#define pidHIDDEN12   17

◆ pidCompaqDiag

#define pidCompaqDiag   18

◆ pidUnknown019

#define pidUnknown019   19

◆ pidHIDDEN16

#define pidHIDDEN16   20

◆ pidUnknown021

#define pidUnknown021   21

◆ pidHIDDEN16HUGE

#define pidHIDDEN16HUGE   22

??????

◆ pidHIDDENHPFS

#define pidHIDDENHPFS   23

◆ pidASTSWAP

#define pidASTSWAP   24

◆ pidWillowtech

#define pidWillowtech   25

◆ pidUnknown026

#define pidUnknown026   26

◆ pidHIDDEN32

#define pidHIDDEN32   27

◆ pidHIDDEN32LBA

#define pidHIDDEN32LBA   28

◆ pidUnknown029

#define pidUnknown029   29

◆ pidHIDDEN16LBA

#define pidHIDDEN16LBA   30

◆ pidUnknown031

#define pidUnknown031   31

◆ pidWillowsoft

#define pidWillowsoft   32

◆ pidOxygen

#define pidOxygen   33

◆ pidOxygenExtended

#define pidOxygenExtended   34

◆ pidReserved035

#define pidReserved035   35

◆ pidNECMSDOS

#define pidNECMSDOS   36

◆ pidUnknown037

#define pidUnknown037   37

◆ pidUnknown038

#define pidUnknown038   38

◆ pidUnknown039

#define pidUnknown039   39

◆ pidUnknown040

#define pidUnknown040   40

◆ pidUnknown041

#define pidUnknown041   41

◆ pidUnknown042

#define pidUnknown042   42

◆ pidUnknown043

#define pidUnknown043   43

◆ pidUnknown044

#define pidUnknown044   44

◆ pidUnknown045

#define pidUnknown045   45

◆ pidUnknown046

#define pidUnknown046   46

◆ pidUnknown047

#define pidUnknown047   47

◆ pidUnknown048

#define pidUnknown048   48

◆ pidReserved049

#define pidReserved049   49

◆ pidAlienNOS

#define pidAlienNOS   50

◆ pidReserved051

#define pidReserved051   51

◆ pidReserved052

#define pidReserved052   52

◆ pidOS2JFS

#define pidOS2JFS   53

◆ pidReserved054

#define pidReserved054   54

◆ pidUnknown055

#define pidUnknown055   55

◆ pidTheos057

#define pidTheos057   56

◆ pidPlan9

#define pidPlan9   57

◆ pidTheos058

#define pidTheos058   58

◆ pidTheos059

#define pidTheos059   59

◆ pidPowerQuest

#define pidPowerQuest   60

◆ pidHiddenNetware

#define pidHiddenNetware   61

◆ pidUnknown062

#define pidUnknown062   62

◆ pidUnknown063

#define pidUnknown063   63

◆ pidVENIX286

#define pidVENIX286   64

◆ pidPersonalRISC

#define pidPersonalRISC   65

◆ pidSFS

#define pidSFS   66

◆ pidPTSDOS

#define pidPTSDOS   67

◆ pidGoBack

#define pidGoBack   68

◆ pidEUMEL069

#define pidEUMEL069   69

◆ pidEUMEL070

#define pidEUMEL070   70

◆ pidEUMEL071

#define pidEUMEL071   71

◆ pidEUMEL072

#define pidEUMEL072   72

◆ pidUnknown073

#define pidUnknown073   73

◆ pidAdaOS

#define pidAdaOS   74

◆ pidUnknown075

#define pidUnknown075   75

◆ pidOberon

#define pidOberon   76

◆ pidQNX4077

#define pidQNX4077   77

◆ pidQNX4078

#define pidQNX4078   78

◆ pidQNX4079

#define pidQNX4079   79

◆ pidOnTrack080

#define pidOnTrack080   80

◆ pidNOVELL081

#define pidNOVELL081   81

◆ pidCPM

#define pidCPM   82

◆ pidOnTrack083

#define pidOnTrack083   83

◆ pidOnTrack084

#define pidOnTrack084   84

◆ pidEZDrive

#define pidEZDrive   85

◆ pidGoldenBow

#define pidGoldenBow   86

◆ pidUnknown087

#define pidUnknown087   87

◆ pidUnknown088

#define pidUnknown088   88

◆ pidUnknown089

#define pidUnknown089   89

◆ pidUnknown090

#define pidUnknown090   90

◆ pidUnknown091

#define pidUnknown091   91

◆ pidPriamEdisk

#define pidPriamEdisk   92

◆ pidUnknown093

#define pidUnknown093   93

◆ pidUnknown094

#define pidUnknown094   94

◆ pidUnknown095

#define pidUnknown095   95

◆ pidUnknown096

#define pidUnknown096   96

◆ pidSpeedStor097

#define pidSpeedStor097   97

◆ pidUnknown098

#define pidUnknown098   98

◆ pidSysV

#define pidSysV   99

◆ pidNetware286

#define pidNetware286   100

◆ pidNWFS

#define pidNWFS   101

Traditional / Netware 6 Master.

◆ pidUnknown102

#define pidUnknown102   102

◆ pidNovell103

#define pidNovell103   103

◆ pidNovell104

#define pidNovell104   104

◆ pidNSS

#define pidNSS   105

NSS / Netware 6.

◆ pidUnknown106

#define pidUnknown106   106

◆ pidUnknown107

#define pidUnknown107   107

◆ pidUnknown108

#define pidUnknown108   108

◆ pidUnknown109

#define pidUnknown109   109

◆ pidUnknown110

#define pidUnknown110   110

◆ pidUnknown111

#define pidUnknown111   111

◆ pidDiskSecure

#define pidDiskSecure   112

◆ pidUnknown113

#define pidUnknown113   113

◆ pidUnknown114

#define pidUnknown114   114

◆ pidReserved115

#define pidReserved115   115

◆ pidReserved116

#define pidReserved116   116

◆ pidPCIX

#define pidPCIX   117

◆ pidReserved118

#define pidReserved118   118

◆ pidUnknown119

#define pidUnknown119   119

◆ pidUnknown120

#define pidUnknown120   120

◆ pidUnknown121

#define pidUnknown121   121

◆ pidUnknown122

#define pidUnknown122   122

◆ pidUnknown123

#define pidUnknown123   123

◆ pidUnknown124

#define pidUnknown124   124

◆ pidUnknown125

#define pidUnknown125   125

◆ pidUnknown126

#define pidUnknown126   126

◆ pidUnknown127

#define pidUnknown127   127

◆ pidMinix

#define pidMinix   128

◆ pidLinuxMinix

#define pidLinuxMinix   129

◆ pidLinuxSwap

#define pidLinuxSwap   130

◆ pidLinuxNative

#define pidLinuxNative   131

◆ pidHIDDENC

#define pidHIDDENC   132

◆ pidLinuxExtended

#define pidLinuxExtended   133

◆ pidFAT16Stripe

#define pidFAT16Stripe   134

◆ pidNTFSStripe

#define pidNTFSStripe   135

◆ pidUnknown136

#define pidUnknown136   136

◆ pidUnknown137

#define pidUnknown137   137

◆ pidUnknown138

#define pidUnknown138   138

◆ pidUnknown139

#define pidUnknown139   139

◆ pidUnknown140

#define pidUnknown140   140

◆ pidUnknown141

#define pidUnknown141   141

◆ pidUnknown142

#define pidUnknown142   142

◆ pidUnknown143

#define pidUnknown143   143

◆ pidUnknown144

#define pidUnknown144   144

◆ pidUnknown145

#define pidUnknown145   145

◆ pidUnknown146

#define pidUnknown146   146

◆ pidAmoeba

#define pidAmoeba   147

◆ pidAmoebaBBT

#define pidAmoebaBBT   148

◆ pidUnknown149

#define pidUnknown149   149

◆ pidUnknown150

#define pidUnknown150   150

◆ pidUnknown151

#define pidUnknown151   151

◆ pidUnknown152

#define pidUnknown152   152

◆ pidUnknown153

#define pidUnknown153   153

◆ pidUnknown154

#define pidUnknown154   154

◆ pidUnknown155

#define pidUnknown155   155

◆ pidUnknown156

#define pidUnknown156   156

◆ pidUnknown157

#define pidUnknown157   157

◆ pidUnknown158

#define pidUnknown158   158

◆ pidUnknown159

#define pidUnknown159   159

◆ pidPhoenixPM

#define pidPhoenixPM   160

◆ pidReserved161

#define pidReserved161   161

◆ pidUnknown162

#define pidUnknown162   162

◆ pidReserved163

#define pidReserved163   163

◆ pidReserved164

#define pidReserved164   164

◆ pidFreeBSD

#define pidFreeBSD   165

◆ pidOpenBSD

#define pidOpenBSD   166

◆ pidNeXTStep

#define pidNeXTStep   167

◆ pidUnknown168

#define pidUnknown168   168

◆ pidUnknown169

#define pidUnknown169   169

◆ pidUnknown170

#define pidUnknown170   170

◆ pidDarwinBoot

#define pidDarwinBoot   171

◆ pidUnknown172

#define pidUnknown172   172

◆ pidUnknown173

#define pidUnknown173   173

◆ pidUnknown174

#define pidUnknown174   174

◆ pidUnknown175

#define pidUnknown175   175

◆ pidUnknown176

#define pidUnknown176   176

◆ pidUnknown177

#define pidUnknown177   177

◆ pidUnknown178

#define pidUnknown178   178

◆ pidUnknown179

#define pidUnknown179   179

◆ pidReserved180

#define pidReserved180   180

◆ pidUnknown181

#define pidUnknown181   181

◆ pidFAT16MirrorA

#define pidFAT16MirrorA   182

◆ pidNTFSMirrorA

#define pidNTFSMirrorA   183

◆ pidBSDIswap

#define pidBSDIswap   184

◆ pidUnknown185

#define pidUnknown185   185

◆ pidUnknown186

#define pidUnknown186   186

◆ pidUnknown187

#define pidUnknown187   187

◆ pidUnknown188

#define pidUnknown188   188

◆ pidUnknown189

#define pidUnknown189   189

◆ pidUnknown190

#define pidUnknown190   190

◆ pidUnknown191

#define pidUnknown191   191

◆ pidUnknown192

#define pidUnknown192   192

◆ pidDRDOSFAT12

#define pidDRDOSFAT12   193

◆ pidUnknown194

#define pidUnknown194   194

◆ pidUnknown195

#define pidUnknown195   195

◆ pidDRDOSFAT16

#define pidDRDOSFAT16   196

◆ pidUnknown197

#define pidUnknown197   197

◆ pidFAT16MirrorB

#define pidFAT16MirrorB   198

◆ pidNTFSMirrorB

#define pidNTFSMirrorB   199

◆ pidUnknown200

#define pidUnknown200   200

◆ pidUnknown201

#define pidUnknown201   201

◆ pidUnknown202

#define pidUnknown202   202

◆ pidUnknown203

#define pidUnknown203   203

◆ pidUnknown204

#define pidUnknown204   204

◆ pidUnknown205

#define pidUnknown205   205

◆ pidUnknown206

#define pidUnknown206   206

◆ pidUnknown207

#define pidUnknown207   207

◆ pidUnknown208

#define pidUnknown208   208

◆ pidUnknown209

#define pidUnknown209   209

◆ pidTinyEFAT

#define pidTinyEFAT   210

◆ pidEFAT

#define pidEFAT   211

◆ pidSecuredEFAT

#define pidSecuredEFAT   212

◆ pidOpticalEFAT

#define pidOpticalEFAT   213

◆ pidUnknown214

#define pidUnknown214   214

◆ pidUnknown215

#define pidUnknown215   215

◆ pidCPM86

#define pidCPM86   216

◆ pidUnknown217

#define pidUnknown217   217

◆ pidUnknown218

#define pidUnknown218   218

◆ pidConcurrentCPM

#define pidConcurrentCPM   219

◆ pidUnknown220

#define pidUnknown220   220

◆ pidUnknown221

#define pidUnknown221   221

◆ pidUnknown222

#define pidUnknown222   222

◆ pidUnknown223

#define pidUnknown223   223

◆ pidUnknown224

#define pidUnknown224   224

◆ pidSpeedStorFAT12

#define pidSpeedStorFAT12   225

◆ pidUnknown226

#define pidUnknown226   226

◆ pidUnknown227

#define pidUnknown227   227

◆ pidSpeedStorFAT16

#define pidSpeedStorFAT16   228

◆ pidReserved229

#define pidReserved229   229

◆ pidReserved230

#define pidReserved230   230

◆ pidUnknown231

#define pidUnknown231   231

◆ pidUnknown232

#define pidUnknown232   232

◆ pidUnknown233

#define pidUnknown233   233

◆ pidUnknown234

#define pidUnknown234   234

◆ pidBeOSBFS1

#define pidBeOSBFS1   235

◆ pidUnknown236

#define pidUnknown236   236

◆ pidUnknown237

#define pidUnknown237   237

◆ pidUnknown238

#define pidUnknown238   238

◆ pidUnknown239

#define pidUnknown239   239

◆ pidLinuxRISC

#define pidLinuxRISC   240

◆ pidStorageDimension

#define pidStorageDimension   241

◆ pidDOS33Secondary

#define pidDOS33Secondary   242

◆ pidSpeedStor243

#define pidSpeedStor243   243

◆ pidSpeedStor244

#define pidSpeedStor244   244

◆ pidPrologue

#define pidPrologue   245

◆ pidSpeedStor246

#define pidSpeedStor246   246

◆ pidOSGEFAT

#define pidOSGEFAT   247

◆ pidUnknown248

#define pidUnknown248   248

◆ pidUnknown249

#define pidUnknown249   249

◆ pidBochsX86

#define pidBochsX86   250

◆ pidVMware

#define pidVMware   251

◆ pidVMwareSwap

#define pidVMwareSwap   252

◆ pidLinuxRAID

#define pidLinuxRAID   253

◆ pidLANstep

#define pidLANstep   254

◆ pidXenixBBT

#define pidXenixBBT   255

◆ FILESYS_ATA_DEVICE_DESCRIPTION

#define FILESYS_ATA_DEVICE_DESCRIPTION   "ATA Storage Device"

Device descriptions

◆ FILESYS_ATAPI_DEVICE_DESCRIPTION

#define FILESYS_ATAPI_DEVICE_DESCRIPTION   "ATAPI Storage Device"

◆ FILESYS_SCSI_DEVICE_DESCRIPTION

#define FILESYS_SCSI_DEVICE_DESCRIPTION   "SCSI Storage Device"

◆ FILESYS_USB_DEVICE_DESCRIPTION

#define FILESYS_USB_DEVICE_DESCRIPTION   "USB Storage Device"

◆ FILESYS_MMC_DEVICE_DESCRIPTION

#define FILESYS_MMC_DEVICE_DESCRIPTION   "MMC/SD Storage Device"

◆ FILESYS_ATA_CONTROLLER_DESCRIPTION

#define FILESYS_ATA_CONTROLLER_DESCRIPTION   "ATA Storage Controller"

Controller descriptions

◆ FILESYS_ATAPI_CONTROLLER_DESCRIPTION

#define FILESYS_ATAPI_CONTROLLER_DESCRIPTION   "ATAPI Storage Controller"

◆ FILESYS_SCSI_CONTROLLER_DESCRIPTION

#define FILESYS_SCSI_CONTROLLER_DESCRIPTION   "SCSI Storage Controller"

◆ FILESYS_USB_CONTROLLER_DESCRIPTION

#define FILESYS_USB_CONTROLLER_DESCRIPTION   "USB Storage Controller"

◆ FILESYS_MMC_CONTROLLER_DESCRIPTION

#define FILESYS_MMC_CONTROLLER_DESCRIPTION   "MMC/SD Storage Controller"

Typedef Documentation

◆ STORAGE_DEVICE_EVENT

FileSystem specific types

◆ MEDIA_TYPE

typedef enum _MEDIA_TYPE MEDIA_TYPE

◆ FLOPPY_TYPE

typedef enum _FLOPPY_TYPE FLOPPY_TYPE

◆ IMAGE_TYPE

typedef enum _IMAGE_TYPE IMAGE_TYPE

◆ CACHE_STATE

typedef enum _CACHE_STATE CACHE_STATE

Cache types

◆ CACHE_MODE

typedef enum _CACHE_MODE CACHE_MODE

◆ CACHE_PAGE_TYPE

◆ CACHE_PAGE_STATE

◆ CACHE_PAGE_CONTENT

◆ CACHE_STATISTICS

Cache Statistics

◆ FILE_SEARCH_REC

Search types

◆ DISK_SEARCH_REC

◆ PARTITION_SEARCH_REC

◆ VOLUME_SEARCH_REC

◆ DRIVE_SEARCH_REC

◆ IMAGE_SEARCH_REC

◆ CATALOG_SEARCH_REC

◆ MOUNT_SEARCH_REC

◆ JUNCTION_SEARCH_REC

◆ STREAM_SEARCH_REC

◆ LINK_SEARCH_REC

◆ BIOS_PB

typedef struct _BIOS_PB BIOS_PB

FAT12/FAT16 BIOS Parameter Block

◆ EXT_BIOS_PB

typedef struct _EXT_BIOS_PB EXT_BIOS_PB

FAT32 BIOS Parameter Block

◆ NTFS_BIOS_PB

typedef struct _NTFS_BIOS_PB NTFS_BIOS_PB

NTFS BIOS Parameter Block

◆ PARTITION_ENTRY

Partition types

◆ PARTITION_TABLE

◆ MASTER_BOOT_CODE

typedef uint8_t MASTER_BOOT_CODE[446]

◆ MASTER_BOOT_RECORD

◆ EXT_MASTER_BOOT_CODE

typedef uint8_t EXT_MASTER_BOOT_CODE[440]

◆ EXT_MASTER_BOOT_RECORD

◆ PARTITION_RECORD

◆ DISK_SECTOR

typedef uint8_t DISK_SECTOR[512]

Sector types

◆ BOOT_SECTOR_JUMP

typedef uint8_t BOOT_SECTOR_JUMP[3]

◆ BOOT_SECTOR_CODE

typedef uint8_t BOOT_SECTOR_CODE[448]

◆ BOOT_SECTOR

typedef struct _BOOT_SECTOR BOOT_SECTOR

◆ EXT_BOOT_SECTOR_JUMP

typedef uint8_t EXT_BOOT_SECTOR_JUMP[3]

◆ EXT_BOOT_SECTOR_CODE

typedef uint8_t EXT_BOOT_SECTOR_CODE[420]

◆ EXT_BOOT_SECTOR

◆ NTFS_BOOT_SECTOR_JUMP

typedef uint8_t NTFS_BOOT_SECTOR_JUMP[3]

◆ NTFS_BOOT_SECTOR_CODE

typedef uint8_t NTFS_BOOT_SECTOR_CODE[426]

◆ NTFS_BOOT_SECTOR

◆ EXTFS_BOOT_SECTOR

Enumeration Type Documentation

◆ _MEDIA_TYPE

Enumerator
mtUNKNOWN 
mtINVALID 
mtFLOPPY 
mtFIXED 
mtREMOVABLE 
mtCDROM 
mtDVD 
mtOTHER 

◆ _FLOPPY_TYPE

Enumerator
ftUNKNOWN 
ftINVALID 
ft360K 
ft12M 
ft720K 
ft144M 
ft288M 
ftATAPI 

◆ _IMAGE_TYPE

Enumerator
itUNKNOWN 
itINVALID 
itMEMORY 
itFILE 
itDEVICE 
itISO 
itBOCHS 
itVMWARE 
itVPC 
itVBOX 

◆ _CACHE_STATE

Cache types

Enumerator
csCLEAN 
csDIRTY 

◆ _CACHE_MODE

Enumerator
cmNONE 
cmREADONLY 
cmREADWRITE 

◆ _CACHE_PAGE_TYPE

Enumerator
ptNONE 
ptDEVICE 

◆ _CACHE_PAGE_STATE

Enumerator
psUNKNOWN 
psEMPTY 
psCLEAN 
psDIRTY 

◆ _CACHE_PAGE_CONTENT

Enumerator
pcUNKNOWN 
pcDATA 
pcDIRECTORY 
pcENTRY 
pcSYSTEM 

Function Documentation

◆ file_sys_start()

uint32_t STDCALL file_sys_start ( void )

Initialization Functions

◆ file_sys_stop()

uint32_t STDCALL file_sys_stop ( void )

◆ file_sys_start_completed()

BOOL STDCALL file_sys_start_completed ( void )

Returns True if the filesystem has been started.

◆ file_sys_async_start()

void STDCALL file_sys_async_start ( void * data)

◆ GetPathDrive()

uint8_t STDCALL GetPathDrive ( const char * path)

FileSystem Functions (Ultibo) Drive Functions

◆ GetDriveType()

DRIVE_TYPE STDCALL GetDriveType ( uint8_t drive)

◆ GetDriveData()

void STDCALL GetDriveData ( uint8_t drive,
DRIVE_DATA * data )

◆ GetDriveAttr()

uint32_t STDCALL GetDriveAttr ( uint8_t drive)

◆ GetDriveLabel()

uint32_t STDCALL GetDriveLabel ( uint8_t drive,
char * label,
uint32_t len )

◆ SetDriveLabel()

BOOL STDCALL SetDriveLabel ( uint8_t drive,
const char * label )

◆ GetDriveSerial()

uint32_t STDCALL GetDriveSerial ( uint8_t drive)

◆ SetDriveSerial()

BOOL STDCALL SetDriveSerial ( uint8_t drive,
uint32_t serial )

◆ IsDriveValid()

BOOL STDCALL IsDriveValid ( uint8_t drive)

◆ GetValidDrives()

uint32_t STDCALL GetValidDrives ( void )

◆ GetValidDriveNames()

uint32_t STDCALL GetValidDriveNames ( char * names,
uint32_t len )

◆ GetDriveFreeSpace()

uint32_t STDCALL GetDriveFreeSpace ( uint8_t drive)

◆ GetDriveFreeSpaceEx()

int64_t STDCALL GetDriveFreeSpaceEx ( uint8_t drive)

◆ GetDriveTotalSpace()

uint32_t STDCALL GetDriveTotalSpace ( uint8_t drive)

◆ GetDriveTotalSpaceEx()

int64_t STDCALL GetDriveTotalSpaceEx ( uint8_t drive)

◆ GetDriveInformation()

BOOL STDCALL GetDriveInformation ( const char * path,
uint32_t * clustersize,
int64_t * totalclustercount,
int64_t * freeclustercount )

◆ GetCurrentDrive()

uint8_t STDCALL GetCurrentDrive ( void )

◆ SetCurrentDrive()

BOOL STDCALL SetCurrentDrive ( const char * drive)

◆ FileOpen()

HANDLE STDCALL FileOpen ( const char * filename,
int mode )

File Functions

◆ FileCreate()

HANDLE STDCALL FileCreate ( const char * filename)

◆ DeleteFile()

BOOL STDCALL DeleteFile ( const char * filename)

◆ FileClose()

void STDCALL FileClose ( HANDLE handle)

◆ RenameFile()

BOOL STDCALL RenameFile ( const char * oldname,
const char * newname )

◆ FileSeek()

int32_t STDCALL FileSeek ( HANDLE handle,
int32_t offset,
int32_t origin )

◆ FileFlush()

BOOL STDCALL FileFlush ( HANDLE handle)

◆ FileTruncate()

BOOL STDCALL FileTruncate ( HANDLE handle)

◆ SetEndOfFile()

BOOL STDCALL SetEndOfFile ( HANDLE handle)

◆ EndOfFile()

BOOL STDCALL EndOfFile ( HANDLE handle)

◆ FilePos()

int32_t STDCALL FilePos ( HANDLE handle)

◆ FileSize()

int32_t STDCALL FileSize ( HANDLE handle)

◆ FileAge()

int STDCALL FileAge ( const char * filename)

◆ FileExists()

BOOL STDCALL FileExists ( const char * filename)

◆ FileGetAttr()

int STDCALL FileGetAttr ( const char * filename)

◆ FileGetDate()

int STDCALL FileGetDate ( HANDLE handle)

◆ FileSetAttr()

int STDCALL FileSetAttr ( const char * filename,
int attr )

◆ FileSetDate()

int STDCALL FileSetDate ( HANDLE handle,
int age )

◆ FileRead()

int32_t STDCALL FileRead ( HANDLE handle,
void * buffer,
int32_t count )

◆ FileWrite()

int32_t STDCALL FileWrite ( HANDLE handle,
void * buffer,
int32_t count )

◆ CreateDir()

BOOL STDCALL CreateDir ( const char * dirname)

Directory Functions

◆ RemoveDir()

BOOL STDCALL RemoveDir ( const char * dirname)

◆ RenameDir()

BOOL STDCALL RenameDir ( const char * oldname,
const char * newname )

◆ GetCurrentDir()

uint32_t STDCALL GetCurrentDir ( char * dirname,
uint32_t len )

◆ SetCurrentDir()

BOOL STDCALL SetCurrentDir ( const char * dirname)

◆ DirectoryExists()

BOOL STDCALL DirectoryExists ( const char * dirname)

◆ ForceDirectories()

void STDCALL ForceDirectories ( char * dirname)

◆ DeleteTree()

void STDCALL DeleteTree ( const char * dirname)

◆ FileCopy()

BOOL STDCALL FileCopy ( const char * sourcefile,
const char * destfile,
BOOL failifexists )

Search Functions Additional Functions

◆ FileCopyEx()

BOOL STDCALL FileCopyEx ( const char * sourcefile,
const char * destfile,
BOOL failifexists,
BOOL usesourcedate,
int destdate,
BOOL usesourceattr,
int destattr )

◆ GetShortName()

uint32_t STDCALL GetShortName ( const char * filename,
char * shortname,
uint32_t len )

◆ GetLongName()

uint32_t STDCALL GetLongName ( const char * filename,
char * longname,
uint32_t len )

◆ GetTrueName()

uint32_t STDCALL GetTrueName ( const char * filename,
char * truename,
uint32_t len )

◆ FileSeekEx()

int64_t STDCALL FileSeekEx ( HANDLE handle,
int64_t offset,
int32_t origin )

Extended Functions

◆ EndOfFileEx()

BOOL STDCALL EndOfFileEx ( HANDLE handle)

◆ FilePosEx()

int64_t STDCALL FilePosEx ( HANDLE handle)

◆ FileSizeEx()

int64_t STDCALL FileSizeEx ( HANDLE handle)

◆ FileAgeEx()

FILETIME STDCALL FileAgeEx ( const char * filename)

◆ FileGetAttrEx()

int STDCALL FileGetAttrEx ( HANDLE handle)

◆ FileGetDateEx()

FILETIME STDCALL FileGetDateEx ( HANDLE handle)

◆ FileSetDateEx()

int STDCALL FileSetDateEx ( HANDLE handle,
FILETIME age )

◆ GetFileTime()

BOOL STDCALL GetFileTime ( HANDLE handle,
FILETIME * createtime,
FILETIME * accesstime,
FILETIME * writetime )

◆ SetFileTime()

BOOL STDCALL SetFileTime ( HANDLE handle,
FILETIME * createtime,
FILETIME * accesstime,
FILETIME * writetime )

◆ FindFirstEx()

int STDCALL FindFirstEx ( const char * path,
FILE_SEARCH_REC * searchrec )

◆ FindNextEx()

int STDCALL FindNextEx ( FILE_SEARCH_REC * searchrec)

◆ FindCloseEx()

void STDCALL FindCloseEx ( FILE_SEARCH_REC * searchrec)

◆ DefineDosDevice()

BOOL STDCALL DefineDosDevice ( uint32_t dwflags,
const char * lpdevicename,
const char * lptargetpath )

FileSystem Functions (Win32 Compatibility) Drive Functions

◆ GetDiskType()

UINT STDCALL GetDiskType ( const char * lprootpathname)

GetDriveType - Already defined above.

◆ GetDiskFreeSpace()

BOOL STDCALL GetDiskFreeSpace ( const char * lprootpathname,
uint32_t * lpsectorspercluster,
uint32_t * lpbytespersector,
uint32_t * lpnumberoffreeclusters,
uint32_t * lptotalnumberofclusters )

◆ GetDiskFreeSpaceEx()

BOOL STDCALL GetDiskFreeSpaceEx ( const char * lpdirectoryname,
ULARGE_INTEGER * lpfreebytesavailabletocaller,
ULARGE_INTEGER * lptotalnumberofbytes,
ULARGE_INTEGER * lptotalnumberoffreebytes )

◆ GetLogicalDrives()

uint32_t STDCALL GetLogicalDrives ( void )

◆ GetLogicalDriveStrings()

uint32_t STDCALL GetLogicalDriveStrings ( uint32_t nbufferlength,
char * lpbuffer )

◆ GetVolumeInformation()

BOOL STDCALL GetVolumeInformation ( const char * lprootpathname,
char * lpvolumenamebuffer,
uint32_t nvolumenamesize,
DWORD * lpvolumeserialnumber,
uint32_t * lpmaximumcomponentlength,
uint32_t * lpfilesystemflags,
char * lpfilesystemnamebuffer,
uint32_t nfilesystemnamesize )

◆ QueryDosDevice()

uint32_t STDCALL QueryDosDevice ( const char * lpdevicename,
char * lptargetpath,
uint32_t ucchmax )

◆ SetVolumeLabel()

BOOL STDCALL SetVolumeLabel ( const char * lprootpathname,
const char * lpvolumename )

◆ AreFileApisANSI()

BOOL STDCALL AreFileApisANSI ( void )

File Functions

◆ CloseHandle()

BOOL STDCALL CloseHandle ( HANDLE hobject)

◆ CopyFile()

BOOL STDCALL CopyFile ( const char * lpexistingfilename,
const char * lpnewfilename,
BOOL bfailifexists )

◆ CreateFile()

HANDLE STDCALL CreateFile ( const char * lpfilename,
uint32_t dwdesiredaccess,
uint32_t dwsharemode,
SECURITY_ATTRIBUTES * lpsecurityattributes,
uint32_t dwcreationdisposition,
uint32_t dwflagsandattributes,
HANDLE htemplatefile )

◆ FindCloseFile()

BOOL STDCALL FindCloseFile ( HANDLE hfindfile)

◆ FindFirstFile()

HANDLE STDCALL FindFirstFile ( const char * lpfilename,
WIN32_FIND_DATAA * lpfindfiledata )

◆ FindNextFile()

BOOL STDCALL FindNextFile ( HANDLE hfindfile,
WIN32_FIND_DATAA * lpfindfiledata )

◆ FlushFileBuffers()

BOOL STDCALL FlushFileBuffers ( HANDLE hfile)

◆ GetFileAttributes()

uint32_t STDCALL GetFileAttributes ( const char * lpfilename)

◆ GetFileInformationByHandle()

BOOL STDCALL GetFileInformationByHandle ( HANDLE hfile,
BY_HANDLE_FILE_INFORMATION * lpfileinformation )

◆ GetFileSize()

uint32_t STDCALL GetFileSize ( HANDLE hfile,
DWORD * lpfilesizehigh )

◆ GetFullPathName()

uint32_t STDCALL GetFullPathName ( const char * lpfilename,
uint32_t nbufferlength,
char * lpbuffer,
char * lpfilepart )

◆ GetShortPathName()

uint32_t STDCALL GetShortPathName ( const char * lpszlongpath,
char * lpszshortpath,
uint32_t cchbuffer )

◆ MoveFile()

BOOL STDCALL MoveFile ( const char * lpexistingfilename,
const char * lpnewfilename )

◆ ReadFile()

BOOL STDCALL ReadFile ( HANDLE hfile,
void * lpbuffer,
uint32_t nnumberofbytestoread,
DWORD * lpnumberofbytesread,
OVERLAPPED * lpoverlapped )

◆ SetFileApisToANSI()

void STDCALL SetFileApisToANSI ( void )

◆ SetFileApisToOEM()

void STDCALL SetFileApisToOEM ( void )

◆ SetFileAttributes()

BOOL STDCALL SetFileAttributes ( const char * lpfilename,
uint32_t dwfileattributes )

◆ SetFilePointer()

uint32_t STDCALL SetFilePointer ( HANDLE hfile,
long ldistancetomove,
long * lpdistancetomovehigh,
uint32_t dwmovemethod )

◆ SetFilePointerEx()

BOOL STDCALL SetFilePointerEx ( HANDLE hfile,
LARGE_INTEGER lidistancetomove,
LARGE_INTEGER * lpnewfilepointer,
uint32_t dwmovemethod )

◆ WriteFile()

BOOL STDCALL WriteFile ( HANDLE hfile,
void * lpbuffer,
uint32_t nnumberofbytestowrite,
DWORD * lpnumberofbyteswritten,
OVERLAPPED * lpoverlapped )

◆ GetLongPathName()

uint32_t STDCALL GetLongPathName ( const char * lpszshortpath,
char * lpszlongpath,
uint32_t cchbuffer )

◆ GetFinalPathNameByHandle()

uint32_t STDCALL GetFinalPathNameByHandle ( HANDLE hfile,
char * lpszFilePath,
uint32_t cchFilePath,
uint32_t dwFlags )

◆ SetFileShortName()

BOOL STDCALL SetFileShortName ( HANDLE hfile,
const char * lpshortname )

◆ CreateHardLink()

BOOL STDCALL CreateHardLink ( const char * lpfilename,
const char * lpexistingfilename,
SECURITY_ATTRIBUTES * lpsecurityattributes )

◆ CreateSymbolicLink()

BOOL STDCALL CreateSymbolicLink ( const char * lpsymlinkfilename,
const char * lptargetfilename,
uint32_t dwflags )

◆ CreateDirectory()

BOOL STDCALL CreateDirectory ( const char * lppathname,
SECURITY_ATTRIBUTES * lpsecurityattributes )

Directory Functions

◆ GetCurrentDirectory()

uint32_t STDCALL GetCurrentDirectory ( uint32_t nbufferlength,
char * lpbuffer )

◆ RemoveDirectory()

BOOL STDCALL RemoveDirectory ( const char * lppathname)

◆ SetCurrentDirectory()

BOOL STDCALL SetCurrentDirectory ( const char * lppathname)

◆ file_sys_redirect_input()

BOOL STDCALL file_sys_redirect_input ( HANDLE handle)

Redirect standard input to the file specified by Handle.

FileSystem Helper Functions

Parameters
HandleThe file handle to redirect input to (or INVALID_HANDLE_VALUE to stop redirection)
Returns
True if completed successfully or False if an error occurred
Note
Redirects the input of the text file Input which also redirects the input of Read, ReadLn and the standard C library

◆ file_sys_redirect_output()

BOOL STDCALL file_sys_redirect_output ( HANDLE handle)

Redirect standard output to the file specified by Handle.

Parameters
HandleThe file handle to redirect output to (or INVALID_HANDLE_VALUE to stop redirection)
Returns
True if completed successfully or False if an error occurred
Note
Redirects the output of the text files Output, ErrOutput, StdOut and StdErr which also redirects the output of Write, WriteLn and the standard C library

◆ compare_partitions()

int STDCALL compare_partitions ( void * partition1,
void * partition2 )

Sort partitions in order of start sector.

◆ disk_media_type_to_string()

uint32_t STDCALL disk_media_type_to_string ( MEDIA_TYPE _type,
char * string,
uint32_t len )

◆ floppy_type_to_string()

uint32_t STDCALL floppy_type_to_string ( FLOPPY_TYPE _type,
char * string,
uint32_t len )

◆ image_type_to_string()

uint32_t STDCALL image_type_to_string ( IMAGE_TYPE _type,
char * string,
uint32_t len )

◆ drive_type_to_string()

uint32_t STDCALL drive_type_to_string ( DRIVE_TYPE _type,
char * string,
uint32_t len )

◆ file_sys_type_to_string()

uint32_t STDCALL file_sys_type_to_string ( FILE_SYS_TYPE _type,
char * string,
uint32_t len )

◆ string_to_file_sys_type()

FILE_SYS_TYPE STDCALL string_to_file_sys_type ( char * filesystype)

◆ partition_id_to_string()

uint32_t STDCALL partition_id_to_string ( uint8_t id,
char * string,
uint32_t len )

◆ string_to_partition_id()

uint8_t STDCALL string_to_partition_id ( char * partitionid)

◆ cache_mode_to_string()

uint32_t STDCALL cache_mode_to_string ( CACHE_MODE cachemode,
char * string,
uint32_t len )

◆ const_to_cache_mode()

CACHE_MODE STDCALL const_to_cache_mode ( uint32_t cachemode)

Convert a cache mode constant to a cache mode enum.

Parameters
CacheModeThe cache mode constant (eg FILESYS_CACHE_MODE_READONLY)
Returns
The cache mode enum value (eg cmREADONLY)

◆ string_to_cache_mode()

CACHE_MODE STDCALL string_to_cache_mode ( char * cachemode)

Convert a string value to a cache mode enum.

Parameters
CacheModeThe cache mode string value (eg READONLY)
Returns
The cache mode enum value (eg cmREADONLY)

◆ cache_state_to_string()

uint32_t STDCALL cache_state_to_string ( CACHE_STATE cachestate,
char * string,
uint32_t len )