3 * Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 typedef struct tagDEVVTBL
25 ARC_GET_FILE_INFORMATION GetFileInformation
;
39 VOID
FsRegisterDevice(CHAR
* Prefix
, const DEVVTBL
* FuncTable
);
40 LPCWSTR
FsGetServiceName(ULONG FileId
);
41 VOID
FsSetDeviceSpecific(ULONG FileId
, VOID
* Specific
);
42 VOID
* FsGetDeviceSpecific(ULONG FileId
);
43 ULONG
FsGetDeviceId(ULONG FileId
);
46 LONG
ArcClose(ULONG FileId
);
47 LONG
ArcGetFileInformation(ULONG FileId
, FILEINFORMATION
* Information
);
48 LONG
ArcOpen(CHAR
* Path
, OPENMODE OpenMode
, ULONG
* FileId
);
49 LONG
ArcRead(ULONG FileId
, VOID
* Buffer
, ULONG N
, ULONG
* Count
);
50 LONG
ArcSeek(ULONG FileId
, LARGE_INTEGER
* Position
, SEEKMODE SeekMode
);
52 VOID
FileSystemError(PCSTR ErrorString
);
53 PFILE
FsOpenFile(PCSTR FileName
);
54 VOID
FsCloseFile(PFILE FileHandle
);
55 BOOLEAN
FsReadFile(PFILE FileHandle
, ULONG BytesToRead
, ULONG
* BytesRead
, PVOID Buffer
);
56 ULONG
FsGetFileSize(PFILE FileHandle
);
57 VOID
FsSetFilePointer(PFILE FileHandle
, ULONG NewFilePointer
);
58 ULONG
FsGetNumPathParts(PCSTR Path
);
59 VOID
FsGetFirstNameFromPath(PCHAR Buffer
, PCSTR Path
);