typedef struct tagDEVVTBL
{
- ARC_CLOSE Close;
- ARC_GET_FILE_INFORMATION GetFileInformation;
- ARC_OPEN Open;
- ARC_READ Read;
- ARC_SEEK Seek;
- LPCWSTR ServiceName;
+ ARC_CLOSE Close;
+ ARC_GET_FILE_INFORMATION GetFileInformation;
+ ARC_OPEN Open;
+ ARC_READ Read;
+ ARC_SEEK Seek;
+ LPCWSTR ServiceName;
} DEVVTBL;
-#define FS_FAT 1
-#define FS_NTFS 2
-#define FS_EXT2 3
-#define FS_ISO9660 5
+#define MAX_FDS 60
+
+ARC_STATUS ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
+ARC_STATUS ArcClose(ULONG FileId);
+ARC_STATUS ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
+ARC_STATUS ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
+ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information);
-#define PFILE ULONG
+VOID FileSystemError(PCSTR ErrorString);
+ULONG FsOpenFile(PCSTR FileName);
+ULONG FsGetNumPathParts(PCSTR Path);
+VOID FsGetFirstNameFromPath(PCHAR Buffer, PCSTR Path);
VOID FsRegisterDevice(CHAR* Prefix, const DEVVTBL* FuncTable);
LPCWSTR FsGetServiceName(ULONG FileId);
-VOID FsSetDeviceSpecific(ULONG FileId, VOID* Specific);
+VOID FsSetDeviceSpecific(ULONG FileId, VOID* Specific);
VOID* FsGetDeviceSpecific(ULONG FileId);
ULONG FsGetDeviceId(ULONG FileId);
-VOID FsInit(VOID);
-
-LONG ArcClose(ULONG FileId);
-LONG ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information);
-LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
-LONG ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
-LONG ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
-
-VOID FileSystemError(PCSTR ErrorString);
-PFILE FsOpenFile(PCSTR FileName);
-VOID FsCloseFile(PFILE FileHandle);
-BOOLEAN FsReadFile(PFILE FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID Buffer);
-ULONG FsGetFileSize(PFILE FileHandle);
-VOID FsSetFilePointer(PFILE FileHandle, ULONG NewFilePointer);
-ULONG FsGetNumPathParts(PCSTR Path);
-VOID FsGetFirstNameFromPath(PCHAR Buffer, PCSTR Path);
-
-#define MAX_FDS 60
+VOID FsInit(VOID);