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 #define SECTOR_SIZE 512
24 typedef struct tagDEVVTBL
27 ARC_GET_FILE_INFORMATION GetFileInformation
;
36 ARC_STATUS
ArcOpen(CHAR
* Path
, OPENMODE OpenMode
, ULONG
* FileId
);
37 ARC_STATUS
ArcClose(ULONG FileId
);
38 ARC_STATUS
ArcRead(ULONG FileId
, VOID
* Buffer
, ULONG N
, ULONG
* Count
);
39 ARC_STATUS
ArcSeek(ULONG FileId
, LARGE_INTEGER
* Position
, SEEKMODE SeekMode
);
40 ARC_STATUS
ArcGetFileInformation(ULONG FileId
, FILEINFORMATION
* Information
);
42 VOID
FileSystemError(PCSTR ErrorString
);
47 IN PCSTR DefaultPath OPTIONAL
,
51 ULONG
FsGetNumPathParts(PCSTR Path
);
52 VOID
FsGetFirstNameFromPath(PCHAR Buffer
, PCSTR Path
);
54 VOID
FsRegisterDevice(CHAR
* Prefix
, const DEVVTBL
* FuncTable
);
55 PCWSTR
FsGetServiceName(ULONG FileId
);
56 VOID
FsSetDeviceSpecific(ULONG FileId
, VOID
* Specific
);
57 VOID
* FsGetDeviceSpecific(ULONG FileId
);
58 ULONG
FsGetDeviceId(ULONG FileId
);