Author: hpoussin
Date: Sun Dec 30 23:06:13 2007
New Revision: 31503
URL:
http://svn.reactos.org/svn/reactos?rev=31503&view=rev
Log:
Add a function table to access filesystems
Modified:
trunk/reactos/boot/freeldr/freeldr/fs/ext2.c
trunk/reactos/boot/freeldr/freeldr/fs/fat.c
trunk/reactos/boot/freeldr/freeldr/fs/fs.c
trunk/reactos/boot/freeldr/freeldr/fs/iso.c
trunk/reactos/boot/freeldr/freeldr/fs/ntfs.c
trunk/reactos/boot/freeldr/freeldr/include/fs.h
trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h
trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h
trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h
trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h
Modified: trunk/reactos/boot/freeldr/freeldr/fs/ext2.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/ex…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/ext2.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/ext2.c Sun Dec 30 23:06:13 2007
@@ -35,7 +35,7 @@
ULONG Ext2InodesPerBlock = 0; // Number of inodes in one block
ULONG Ext2GroupDescPerBlock = 0; // Number of group descriptors in one block
-BOOLEAN Ext2OpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector)
+BOOLEAN Ext2OpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount)
{
DbgPrint((DPRINT_FILESYSTEM, "Ext2OpenVolume() DriveNumber = 0x%x VolumeStartSector
= %d\n", DriveNumber, VolumeStartSector));
@@ -102,7 +102,7 @@
DbgPrint((DPRINT_FILESYSTEM, "File is a symbolic link\n"));
// Now read in the symbolic link path
- if (!Ext2ReadFile(&TempExt2FileInfo, TempExt2FileInfo.FileSize, NULL,
SymLinkPath))
+ if (!Ext2ReadFileBig(&TempExt2FileInfo, TempExt2FileInfo.FileSize, NULL,
SymLinkPath))
{
if (TempExt2FileInfo.FileBlockList != NULL)
{
@@ -331,11 +331,11 @@
}
/*
- * Ext2ReadFile()
+ * Ext2ReadFileBig()
* Reads BytesToRead from open file and
* returns the number of bytes read in BytesRead
*/
-BOOLEAN Ext2ReadFile(FILE *FileHandle, ULONGLONG BytesToRead, ULONGLONG* BytesRead, PVOID
Buffer)
+BOOLEAN Ext2ReadFileBig(FILE *FileHandle, ULONGLONG BytesToRead, ULONGLONG* BytesRead,
PVOID Buffer)
{
PEXT2_FILE_INFO Ext2FileInfo = (PEXT2_FILE_INFO)FileHandle;
ULONG BlockNumber;
@@ -344,7 +344,7 @@
ULONG LengthInBlock;
ULONG NumberOfBlocks;
- DbgPrint((DPRINT_FILESYSTEM, "Ext2ReadFile() BytesToRead = %d Buffer =
0x%x\n", (ULONG)BytesToRead, Buffer));
+ DbgPrint((DPRINT_FILESYSTEM, "Ext2ReadFileBig() BytesToRead = %d Buffer =
0x%x\n", (ULONG)BytesToRead, Buffer));
if (BytesRead != NULL)
{
@@ -519,7 +519,17 @@
return TRUE;
}
-ULONGLONG Ext2GetFileSize(FILE *FileHandle)
+BOOLEAN Ext2ReadFile(FILE *FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID
Buffer)
+{
+ BOOLEAN Success;
+ ULONGLONG BytesReadBig;
+
+ Success = Ext2ReadFileBig(FileHandle, BytesToRead, &BytesReadBig, Buffer);
+ *BytesRead = (ULONG)BytesReadBig;
+ return Success;
+}
+
+ULONG Ext2GetFileSize(FILE *FileHandle)
{
PEXT2_FILE_INFO Ext2FileHandle = (PEXT2_FILE_INFO)FileHandle;
@@ -528,7 +538,7 @@
return Ext2FileHandle->FileSize;
}
-VOID Ext2SetFilePointer(FILE *FileHandle, ULONGLONG NewFilePointer)
+VOID Ext2SetFilePointer(FILE *FileHandle, ULONG NewFilePointer)
{
PEXT2_FILE_INFO Ext2FileHandle = (PEXT2_FILE_INFO)FileHandle;
@@ -537,7 +547,7 @@
Ext2FileHandle->FilePointer = NewFilePointer;
}
-ULONGLONG Ext2GetFilePointer(FILE *FileHandle)
+ULONG Ext2GetFilePointer(FILE *FileHandle)
{
PEXT2_FILE_INFO Ext2FileHandle = (PEXT2_FILE_INFO)FileHandle;
@@ -787,7 +797,7 @@
return FALSE;
}
- // Fill in file info struct so we can call Ext2ReadFile()
+ // Fill in file info struct so we can call Ext2ReadFileBig()
RtlZeroMemory(&DirectoryFileInfo, sizeof(EXT2_FILE_INFO));
DirectoryFileInfo.DriveNumber = Ext2DriveNumber;
DirectoryFileInfo.FileBlockList = Ext2ReadBlockPointerList(InodePointer);
@@ -815,7 +825,7 @@
}
// Now read the root directory data
- if (!Ext2ReadFile(&DirectoryFileInfo, DirectoryFileInfo.FileSize, NULL,
*DirectoryBuffer))
+ if (!Ext2ReadFileBig(&DirectoryFileInfo, DirectoryFileInfo.FileSize, NULL,
*DirectoryBuffer))
{
MmFreeMemory(*DirectoryBuffer);
*DirectoryBuffer = NULL;
@@ -1167,3 +1177,13 @@
MmFreeMemory(BlockBuffer);
return TRUE;
}
+
+const FS_VTBL Ext2Vtbl = {
+ Ext2OpenVolume,
+ Ext2OpenFile,
+ NULL,
+ Ext2ReadFile,
+ Ext2GetFileSize,
+ Ext2SetFilePointer,
+ Ext2GetFilePointer,
+};
Modified: trunk/reactos/boot/freeldr/freeldr/fs/fat.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/fa…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/fat.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/fat.c Sun Dec 30 23:06:13 2007
@@ -115,7 +115,7 @@
SW(Obj, LastAccessDate);
}
-BOOLEAN FatOpenVolume(ULONG DriveNumber, ULONG VolumeStartSector, ULONG
PartitionSectorCount)
+BOOLEAN FatOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount)
{
char ErrMsg[80];
ULONG FatSize;
@@ -1407,3 +1407,13 @@
{
return CacheReadDiskSectors(DriveNumber, SectorNumber + FatVolumeStartSector,
SectorCount, Buffer);
}
+
+const FS_VTBL FatVtbl = {
+ FatOpenVolume,
+ FatOpenFile,
+ NULL,
+ FatReadFile,
+ FatGetFileSize,
+ FatSetFilePointer,
+ FatGetFilePointer,
+};
Modified: trunk/reactos/boot/freeldr/freeldr/fs/fs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/fs…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/fs.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/fs.c Sun Dec 30 23:06:13 2007
@@ -26,7 +26,7 @@
// DATA
/////////////////////////////////////////////////////////////////////////////////////////////
-ULONG FsType = 0; // Type of filesystem on boot device, set by FsOpenVolume()
+const FS_VTBL* pFSVtbl = NULL; // Type of filesystem on boot device, set by
FsOpenVolume()
PVOID FsStaticBufferDisk = 0, FsStaticBufferData = 0;
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -52,8 +52,6 @@
{
CHAR ErrorText[80];
- FsType = Type;
-
if( !FsStaticBufferDisk )
FsStaticBufferDisk = MmAllocateMemory( 0x20000 );
if( !FsStaticBufferDisk )
@@ -63,18 +61,31 @@
}
FsStaticBufferData = ((PCHAR)FsStaticBufferDisk) + 0x10000;
- switch (FsType)
+ switch (Type)
{
case FS_FAT:
- return FatOpenVolume(DriveNumber, StartSector, SectorCount);
+ pFSVtbl = &FatVtbl;
+ break;
+ case FS_NTFS:
+ pFSVtbl = &NtfsVtbl;
+ break;
case FS_EXT2:
- return Ext2OpenVolume(DriveNumber, StartSector);
- case FS_NTFS:
- return NtfsOpenVolume(DriveNumber, StartSector);
+ pFSVtbl = &Ext2Vtbl;
+ break;
case FS_ISO9660:
- return IsoOpenVolume(DriveNumber);
+ pFSVtbl = &Iso9660Vtbl;
+ break;
default:
- FsType = 0;
+ pFSVtbl = NULL;
+ break;
+ }
+
+ if (pFSVtbl && pFSVtbl->OpenVolume)
+ {
+ return (*pFSVtbl->OpenVolume)(DriveNumber, StartSector, SectorCount);
+ }
+ else
+ {
sprintf(ErrorText, "Unsupported file system. Type: 0x%x", Type);
FileSystemError(ErrorText);
}
@@ -143,23 +154,13 @@
//
// Check file system type and pass off to appropriate handler
//
- switch (FsType)
- {
- case FS_FAT:
- FileHandle = FatOpenFile(FileName);
- break;
- case FS_ISO9660:
- FileHandle = IsoOpenFile(FileName);
- break;
- case FS_EXT2:
- FileHandle = Ext2OpenFile(FileName);
- break;
- case FS_NTFS:
- FileHandle = NtfsOpenFile(FileName);
- break;
- default:
+ if (pFSVtbl && pFSVtbl->OpenFile)
+ {
+ FileHandle = pFSVtbl->OpenFile(FileName);
+ }
+ else
+ {
FileSystemError("Error: Unknown filesystem.");
- break;
}
//
@@ -179,18 +180,14 @@
VOID FsCloseFile(PFILE FileHandle)
{
- switch (FsType)
- {
- case FS_FAT:
- case FS_ISO9660:
- case FS_EXT2:
- break;
- case FS_NTFS:
- NtfsCloseFile(FileHandle);
- break;
- default:
+ if (pFSVtbl)
+ {
+ if (pFSVtbl->CloseFile)
+ (*pFSVtbl->CloseFile)(FileHandle);
+ }
+ else
+ {
FileSystemError("Error: Unknown filesystem.");
- break;
}
}
@@ -200,9 +197,6 @@
*/
BOOLEAN FsReadFile(PFILE FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID Buffer)
{
- ULONGLONG BytesReadBig;
- BOOLEAN Success;
-
//
// Set the number of bytes read equal to zero
//
@@ -211,124 +205,53 @@
*BytesRead = 0;
}
- switch (FsType)
- {
- case FS_FAT:
-
- return FatReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
-
- case FS_ISO9660:
-
- return IsoReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
-
- case FS_EXT2:
-
- //return Ext2ReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
- Success = Ext2ReadFile(FileHandle, BytesToRead, &BytesReadBig, Buffer);
- *BytesRead = (ULONG)BytesReadBig;
- return Success;
-
- case FS_NTFS:
-
- return NtfsReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
-
- default:
-
+ if (pFSVtbl && pFSVtbl->ReadFile)
+ {
+ return (*pFSVtbl->ReadFile)(FileHandle, BytesToRead, BytesRead, Buffer);
+ }
+ else
+ {
FileSystemError("Unknown file system.");
return FALSE;
}
-
- return FALSE;
}
ULONG FsGetFileSize(PFILE FileHandle)
{
- switch (FsType)
- {
- case FS_FAT:
-
- return FatGetFileSize(FileHandle);
-
- case FS_ISO9660:
-
- return IsoGetFileSize(FileHandle);
-
- case FS_EXT2:
-
- return Ext2GetFileSize(FileHandle);
-
- case FS_NTFS:
-
- return NtfsGetFileSize(FileHandle);
-
- default:
+ if (pFSVtbl && pFSVtbl->GetFileSize)
+ {
+ return (*pFSVtbl->GetFileSize)(FileHandle);
+ }
+ else
+ {
FileSystemError("Unknown file system.");
- break;
- }
-
- return 0;
+ return 0;
+ }
}
VOID FsSetFilePointer(PFILE FileHandle, ULONG NewFilePointer)
{
- switch (FsType)
- {
- case FS_FAT:
-
- FatSetFilePointer(FileHandle, NewFilePointer);
- break;
-
- case FS_ISO9660:
-
- IsoSetFilePointer(FileHandle, NewFilePointer);
- break;
-
- case FS_EXT2:
-
- Ext2SetFilePointer(FileHandle, NewFilePointer);
- break;
-
- case FS_NTFS:
-
- NtfsSetFilePointer(FileHandle, NewFilePointer);
- break;
-
- default:
+ if (pFSVtbl && pFSVtbl->SetFilePointer)
+ {
+ (*pFSVtbl->SetFilePointer)(FileHandle, NewFilePointer);
+ }
+ else
+ {
FileSystemError("Unknown file system.");
- break;
}
}
ULONG FsGetFilePointer(PFILE FileHandle)
{
- switch (FsType)
- {
- case FS_FAT:
-
- return FatGetFilePointer(FileHandle);
- break;
-
- case FS_ISO9660:
-
- return IsoGetFilePointer(FileHandle);
- break;
-
- case FS_EXT2:
-
- return Ext2GetFilePointer(FileHandle);
- break;
-
- case FS_NTFS:
-
- return NtfsGetFilePointer(FileHandle);
- break;
-
- default:
+ if (pFSVtbl && pFSVtbl->SetFilePointer)
+ {
+ return (*pFSVtbl->GetFilePointer)(FileHandle);
+ }
+ else
+ {
FileSystemError("Unknown file system.");
- break;
- }
-
- return 0;
+ return 0;
+ }
}
BOOLEAN FsIsEndOfFile(PFILE FileHandle)
Modified: trunk/reactos/boot/freeldr/freeldr/fs/iso.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/is…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/iso.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/iso.c Sun Dec 30 23:06:13 2007
@@ -28,7 +28,7 @@
ULONG IsoDriveNumber = 0;
-BOOLEAN IsoOpenVolume(ULONG DriveNumber)
+BOOLEAN IsoOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount)
{
PPVD Pvd = (PPVD)DISKREADBUFFER;
@@ -467,3 +467,13 @@
return IsoFileHandle->FilePointer;
}
+
+const FS_VTBL Iso9660Vtbl = {
+ IsoOpenVolume,
+ IsoOpenFile,
+ NULL,
+ IsoReadFile,
+ IsoGetFileSize,
+ IsoSetFilePointer,
+ IsoGetFilePointer,
+};
Modified: trunk/reactos/boot/freeldr/freeldr/fs/ntfs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/nt…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/ntfs.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/ntfs.c Sun Dec 30 23:06:13 2007
@@ -685,7 +685,7 @@
return TRUE;
}
-BOOLEAN NtfsOpenVolume(ULONG DriveNumber, ULONG VolumeStartSector)
+BOOLEAN NtfsOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount)
{
NtfsBootSector = (PNTFS_BOOTSECTOR)DISKREADBUFFER;
@@ -821,3 +821,13 @@
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
return FileHandle->Offset;
}
+
+const FS_VTBL NtfsVtbl = {
+ NtfsOpenVolume,
+ NtfsOpenFile,
+ NtfsCloseFile,
+ NtfsReadFile,
+ NtfsGetFileSize,
+ NtfsSetFilePointer,
+ NtfsGetFilePointer,
+};
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/fs.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/fs.h Sun Dec 30 23:06:13 2007
@@ -28,6 +28,7 @@
#define FS_EXT2 3
#define FS_REISER 4
#define FS_ISO9660 5
+#define FS_PXE 6
#define FILE VOID
#define PFILE FILE *
@@ -45,4 +46,15 @@
ULONG FsGetNumPathParts(PCSTR Path);
VOID FsGetFirstNameFromPath(PCHAR Buffer, PCSTR Path);
+typedef struct
+{
+ BOOLEAN (*OpenVolume)(UCHAR DriveNumber, ULONGLONG StartSector, ULONGLONG SectorCount);
+ PFILE (*OpenFile)(PCSTR FileName);
+ VOID (*CloseFile)(PFILE FileHandle);
+ BOOLEAN (*ReadFile)(PFILE FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID
Buffer);
+ ULONG (*GetFileSize)(PFILE FileHandle);
+ VOID (*SetFilePointer)(PFILE FileHandle, ULONG NewFilePointer);
+ ULONG (*GetFilePointer)(PFILE FileHandle);
+} FS_VTBL;
+
#endif // #defined __FS_H
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h Sun Dec 30 23:06:13 2007
@@ -666,16 +666,17 @@
-BOOLEAN Ext2OpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector);
+BOOLEAN Ext2OpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount);
FILE* Ext2OpenFile(PCSTR FileName);
BOOLEAN Ext2LookupFile(PCSTR FileName, PEXT2_FILE_INFO Ext2FileInfoPointer);
BOOLEAN Ext2SearchDirectoryBufferForFile(PVOID DirectoryBuffer, ULONG DirectorySize,
PCHAR FileName, PEXT2_DIR_ENTRY DirectoryEntry);
-BOOLEAN Ext2ReadFile(FILE *FileHandle, ULONGLONG BytesToRead, ULONGLONG* BytesRead, PVOID
Buffer);
-ULONGLONG Ext2GetFileSize(FILE *FileHandle);
-VOID Ext2SetFilePointer(FILE *FileHandle, ULONGLONG NewFilePointer);
-ULONGLONG Ext2GetFilePointer(FILE *FileHandle);
+BOOLEAN Ext2ReadFile(FILE *FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID
Buffer);
+ULONG Ext2GetFileSize(FILE *FileHandle);
+VOID Ext2SetFilePointer(FILE *FileHandle, ULONG NewFilePointer);
+ULONG Ext2GetFilePointer(FILE *FileHandle);
BOOLEAN Ext2ReadVolumeSectors(UCHAR DriveNumber, ULONGLONG SectorNumber, ULONGLONG
SectorCount, PVOID Buffer);
+BOOLEAN Ext2ReadFileBig(FILE *FileHandle, ULONGLONG BytesToRead, ULONGLONG* BytesRead,
PVOID Buffer);
BOOLEAN Ext2ReadSuperBlock(VOID);
BOOLEAN Ext2ReadGroupDescriptors(VOID);
BOOLEAN Ext2ReadDirectory(ULONG Inode, PVOID* DirectoryBuffer, PEXT2_INODE
InodePointer);
@@ -694,4 +695,6 @@
BOOLEAN Ext2CopyDoubleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBlockInList,
ULONG BlockCount, ULONG DoubleIndirectBlock);
BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBlockInList,
ULONG BlockCount, ULONG TripleIndirectBlock);
+extern const FS_VTBL Ext2Vtbl;
+
#endif // #defined __EXT2_H
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h Sun Dec 30 23:06:13 2007
@@ -152,7 +152,7 @@
-BOOLEAN FatOpenVolume(ULONG DriveNumber, ULONG VolumeStartSector, ULONG
PartitionSectorCount);
+BOOLEAN FatOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount);
ULONG FatDetermineFatType(PFAT_BOOTSECTOR FatBootSector, ULONG PartitionSectorCount);
PVOID FatBufferDirectory(ULONG DirectoryStartCluster, ULONG* EntryCountPointer, BOOLEAN
RootDirectory);
BOOLEAN FatSearchDirectoryBufferForFile(PVOID DirectoryBuffer, ULONG EntryCount, PCHAR
FileName, PFAT_FILE_INFO FatFileInfoPointer);
@@ -189,4 +189,6 @@
#define ISFATX(FT) ((FT) == FATX16 || (FT) == FATX32)
+extern const FS_VTBL FatVtbl;
+
#endif // #defined __FAT_H
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h Sun Dec 30 23:06:13 2007
@@ -105,11 +105,13 @@
} ISO_FILE_INFO, * PISO_FILE_INFO;
-BOOLEAN IsoOpenVolume(ULONG DriveNumber);
+BOOLEAN IsoOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount);
FILE* IsoOpenFile(PCSTR FileName);
BOOLEAN IsoReadFile(FILE *FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID
Buffer);
ULONG IsoGetFileSize(FILE *FileHandle);
VOID IsoSetFilePointer(FILE *FileHandle, ULONG NewFilePointer);
ULONG IsoGetFilePointer(FILE *FileHandle);
+extern const FS_VTBL Iso9660Vtbl;
+
#endif // #defined __FAT_H
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h Sun Dec 30 23:06:13 2007
@@ -218,7 +218,7 @@
ULONGLONG Offset;
} PACKED NTFS_FILE_HANDLE, *PNTFS_FILE_HANDLE;
-BOOLEAN NtfsOpenVolume(ULONG DriveNumber, ULONG VolumeStartSector);
+BOOLEAN NtfsOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
PartitionSectorCount);
FILE* NtfsOpenFile(PCSTR FileName);
VOID NtfsCloseFile(FILE *FileHandle);
BOOLEAN NtfsReadFile(FILE *FileHandle, ULONG BytesToRead, ULONG* BytesRead, PVOID
Buffer);
@@ -226,4 +226,6 @@
VOID NtfsSetFilePointer(FILE *FileHandle, ULONG NewFilePointer);
ULONG NtfsGetFilePointer(FILE *FileHandle);
+extern const FS_VTBL NtfsVtbl;
+
#endif // #defined __NTFS_H