mirror of
https://github.com/reactos/reactos.git
synced 2024-07-12 23:55:07 +00:00
- Make other filesystems use the new heap mm routines.
svn path=/trunk/; revision=32112
This commit is contained in:
parent
73bf020856
commit
f971658fb8
|
@ -106,7 +106,7 @@ FILE* Ext2OpenFile(PCSTR FileName)
|
|||
{
|
||||
if (TempExt2FileInfo.FileBlockList != NULL)
|
||||
{
|
||||
MmFreeMemory(TempExt2FileInfo.FileBlockList);
|
||||
MmHeapFree(TempExt2FileInfo.FileBlockList);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -148,20 +148,20 @@ FILE* Ext2OpenFile(PCSTR FileName)
|
|||
|
||||
if (TempExt2FileInfo.FileBlockList != NULL)
|
||||
{
|
||||
MmFreeMemory(TempExt2FileInfo.FileBlockList);
|
||||
MmHeapFree(TempExt2FileInfo.FileBlockList);
|
||||
}
|
||||
|
||||
return Ext2OpenFile(FullPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
FileHandle = MmAllocateMemory(sizeof(EXT2_FILE_INFO));
|
||||
FileHandle = MmHeapAlloc(sizeof(EXT2_FILE_INFO));
|
||||
|
||||
if (FileHandle == NULL)
|
||||
{
|
||||
if (TempExt2FileInfo.FileBlockList != NULL)
|
||||
{
|
||||
MmFreeMemory(TempExt2FileInfo.FileBlockList);
|
||||
MmHeapFree(TempExt2FileInfo.FileBlockList);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -230,11 +230,11 @@ BOOLEAN Ext2LookupFile(PCSTR FileName, PEXT2_FILE_INFO Ext2FileInfoPointer)
|
|||
//
|
||||
if (!Ext2SearchDirectoryBufferForFile(DirectoryBuffer, (ULONG)Ext2GetInodeFileSize(&InodeData), PathPart, &DirectoryEntry))
|
||||
{
|
||||
MmFreeMemory(DirectoryBuffer);
|
||||
MmHeapFree(DirectoryBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
MmFreeMemory(DirectoryBuffer);
|
||||
MmHeapFree(DirectoryBuffer);
|
||||
|
||||
DirectoryInode = DirectoryEntry.inode;
|
||||
}
|
||||
|
@ -581,7 +581,7 @@ BOOLEAN Ext2ReadSuperBlock(VOID)
|
|||
//
|
||||
if (Ext2SuperBlock != NULL)
|
||||
{
|
||||
MmFreeMemory(Ext2SuperBlock);
|
||||
MmHeapFree(Ext2SuperBlock);
|
||||
|
||||
Ext2SuperBlock = NULL;
|
||||
}
|
||||
|
@ -589,7 +589,7 @@ BOOLEAN Ext2ReadSuperBlock(VOID)
|
|||
//
|
||||
// Now allocate the memory to hold the super block
|
||||
//
|
||||
Ext2SuperBlock = (PEXT2_SUPER_BLOCK)MmAllocateMemory(1024);
|
||||
Ext2SuperBlock = (PEXT2_SUPER_BLOCK)MmHeapAlloc(1024);
|
||||
|
||||
//
|
||||
// Make sure we got the memory
|
||||
|
@ -744,7 +744,7 @@ BOOLEAN Ext2ReadGroupDescriptors(VOID)
|
|||
//
|
||||
if (Ext2GroupDescriptors != NULL)
|
||||
{
|
||||
MmFreeMemory(Ext2GroupDescriptors);
|
||||
MmHeapFree(Ext2GroupDescriptors);
|
||||
|
||||
Ext2GroupDescriptors = NULL;
|
||||
}
|
||||
|
@ -753,7 +753,7 @@ BOOLEAN Ext2ReadGroupDescriptors(VOID)
|
|||
// Now allocate the memory to hold the group descriptors
|
||||
//
|
||||
GroupDescBlockCount = ROUND_UP(Ext2GroupCount, Ext2GroupDescPerBlock) / Ext2GroupDescPerBlock;
|
||||
Ext2GroupDescriptors = (PEXT2_GROUP_DESC)MmAllocateMemory(GroupDescBlockCount * Ext2BlockSizeInBytes);
|
||||
Ext2GroupDescriptors = (PEXT2_GROUP_DESC)MmHeapAlloc(GroupDescBlockCount * Ext2BlockSizeInBytes);
|
||||
|
||||
//
|
||||
// Make sure we got the memory
|
||||
|
@ -812,14 +812,14 @@ BOOLEAN Ext2ReadDirectory(ULONG Inode, PVOID* DirectoryBuffer, PEXT2_INODE Inode
|
|||
//
|
||||
// Now allocate the memory to hold the group descriptors
|
||||
//
|
||||
*DirectoryBuffer = (PEXT2_DIR_ENTRY)MmAllocateMemory(DirectoryFileInfo.FileSize);
|
||||
*DirectoryBuffer = (PEXT2_DIR_ENTRY)MmHeapAlloc(DirectoryFileInfo.FileSize);
|
||||
|
||||
//
|
||||
// Make sure we got the memory
|
||||
//
|
||||
if (*DirectoryBuffer == NULL)
|
||||
{
|
||||
MmFreeMemory(DirectoryFileInfo.FileBlockList);
|
||||
MmHeapFree(DirectoryFileInfo.FileBlockList);
|
||||
FileSystemError("Out of memory.");
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -827,13 +827,13 @@ BOOLEAN Ext2ReadDirectory(ULONG Inode, PVOID* DirectoryBuffer, PEXT2_INODE Inode
|
|||
// Now read the root directory data
|
||||
if (!Ext2ReadFileBig(&DirectoryFileInfo, DirectoryFileInfo.FileSize, NULL, *DirectoryBuffer))
|
||||
{
|
||||
MmFreeMemory(*DirectoryBuffer);
|
||||
MmHeapFree(*DirectoryBuffer);
|
||||
*DirectoryBuffer = NULL;
|
||||
MmFreeMemory(DirectoryFileInfo.FileBlockList);
|
||||
MmHeapFree(DirectoryFileInfo.FileBlockList);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
MmFreeMemory(DirectoryFileInfo.FileBlockList);
|
||||
MmHeapFree(DirectoryFileInfo.FileBlockList);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1023,7 +1023,7 @@ ULONG* Ext2ReadBlockPointerList(PEXT2_INODE Inode)
|
|||
BlockCount = (FileSize / Ext2BlockSizeInBytes);
|
||||
|
||||
// Allocate the memory for the block list
|
||||
BlockList = MmAllocateMemory(BlockCount * sizeof(ULONG));
|
||||
BlockList = MmHeapAlloc(BlockCount * sizeof(ULONG));
|
||||
if (BlockList == NULL)
|
||||
{
|
||||
return NULL;
|
||||
|
@ -1044,7 +1044,7 @@ ULONG* Ext2ReadBlockPointerList(PEXT2_INODE Inode)
|
|||
{
|
||||
if (!Ext2CopyIndirectBlockPointers(BlockList, &CurrentBlockInList, BlockCount, Inode->i_block[EXT3_IND_BLOCK]))
|
||||
{
|
||||
MmFreeMemory(BlockList);
|
||||
MmHeapFree(BlockList);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1054,7 +1054,7 @@ ULONG* Ext2ReadBlockPointerList(PEXT2_INODE Inode)
|
|||
{
|
||||
if (!Ext2CopyDoubleIndirectBlockPointers(BlockList, &CurrentBlockInList, BlockCount, Inode->i_block[EXT3_DIND_BLOCK]))
|
||||
{
|
||||
MmFreeMemory(BlockList);
|
||||
MmHeapFree(BlockList);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1064,7 +1064,7 @@ ULONG* Ext2ReadBlockPointerList(PEXT2_INODE Inode)
|
|||
{
|
||||
if (!Ext2CopyTripleIndirectBlockPointers(BlockList, &CurrentBlockInList, BlockCount, Inode->i_block[EXT3_TIND_BLOCK]))
|
||||
{
|
||||
MmFreeMemory(BlockList);
|
||||
MmHeapFree(BlockList);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1118,7 +1118,7 @@ BOOLEAN Ext2CopyDoubleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
|
||||
BlockPointersPerBlock = Ext2BlockSizeInBytes / sizeof(ULONG);
|
||||
|
||||
BlockBuffer = (ULONG*)MmAllocateMemory(Ext2BlockSizeInBytes);
|
||||
BlockBuffer = (ULONG*)MmHeapAlloc(Ext2BlockSizeInBytes);
|
||||
if (BlockBuffer == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
|
@ -1126,7 +1126,7 @@ BOOLEAN Ext2CopyDoubleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
|
||||
if (!Ext2ReadBlock(DoubleIndirectBlock, BlockBuffer))
|
||||
{
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1134,12 +1134,12 @@ BOOLEAN Ext2CopyDoubleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
{
|
||||
if (!Ext2CopyIndirectBlockPointers(BlockList, CurrentBlockInList, BlockCount, BlockBuffer[CurrentBlock]))
|
||||
{
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1153,7 +1153,7 @@ BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
|
||||
BlockPointersPerBlock = Ext2BlockSizeInBytes / sizeof(ULONG);
|
||||
|
||||
BlockBuffer = (ULONG*)MmAllocateMemory(Ext2BlockSizeInBytes);
|
||||
BlockBuffer = (ULONG*)MmHeapAlloc(Ext2BlockSizeInBytes);
|
||||
if (BlockBuffer == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
|
@ -1161,7 +1161,7 @@ BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
|
||||
if (!Ext2ReadBlock(TripleIndirectBlock, BlockBuffer))
|
||||
{
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1169,12 +1169,12 @@ BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
|||
{
|
||||
if (!Ext2CopyDoubleIndirectBlockPointers(BlockList, CurrentBlockInList, BlockCount, BlockBuffer[CurrentBlock]))
|
||||
{
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
MmFreeMemory(BlockBuffer);
|
||||
MmHeapFree(BlockBuffer);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -265,7 +265,7 @@ FILE* IsoOpenFile(PCSTR FileName)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
FileHandle = MmAllocateMemory(sizeof(ISO_FILE_INFO));
|
||||
FileHandle = MmHeapAlloc(sizeof(ISO_FILE_INFO));
|
||||
|
||||
if (FileHandle == NULL)
|
||||
{
|
||||
|
|
|
@ -89,7 +89,7 @@ static PNTFS_ATTR_CONTEXT NtfsPrepareAttributeContext(PNTFS_ATTR_RECORD AttrReco
|
|||
{
|
||||
PNTFS_ATTR_CONTEXT Context;
|
||||
|
||||
Context = MmAllocateMemory(FIELD_OFFSET(NTFS_ATTR_CONTEXT, Record) + AttrRecord->Length);
|
||||
Context = MmHeapAlloc(FIELD_OFFSET(NTFS_ATTR_CONTEXT, Record) + AttrRecord->Length);
|
||||
RtlCopyMemory(&Context->Record, AttrRecord, AttrRecord->Length);
|
||||
if (AttrRecord->IsNonResident)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ static PNTFS_ATTR_CONTEXT NtfsPrepareAttributeContext(PNTFS_ATTR_RECORD AttrReco
|
|||
|
||||
static VOID NtfsReleaseAttributeContext(PNTFS_ATTR_CONTEXT Context)
|
||||
{
|
||||
MmFreeMemory(Context);
|
||||
MmHeapFree(Context);
|
||||
}
|
||||
|
||||
/* FIXME: Optimize for multisector reads. */
|
||||
|
@ -338,7 +338,7 @@ static PNTFS_ATTR_CONTEXT NtfsFindAttributeHelper(PNTFS_ATTR_RECORD AttrRecord,
|
|||
ListContext = NtfsPrepareAttributeContext(AttrRecord);
|
||||
|
||||
ListSize = NtfsGetAttributeSize(&ListContext->Record);
|
||||
ListBuffer = MmAllocateMemory(ListSize);
|
||||
ListBuffer = MmHeapAlloc(ListSize);
|
||||
|
||||
ListAttrRecord = (PNTFS_ATTR_RECORD)ListBuffer;
|
||||
ListAttrRecordEnd = (PNTFS_ATTR_RECORD)((PCHAR)ListBuffer + ListSize);
|
||||
|
@ -349,7 +349,7 @@ static PNTFS_ATTR_CONTEXT NtfsFindAttributeHelper(PNTFS_ATTR_RECORD AttrRecord,
|
|||
Type, Name, NameLength);
|
||||
|
||||
NtfsReleaseAttributeContext(ListContext);
|
||||
MmFreeMemory(ListBuffer);
|
||||
MmHeapFree(ListBuffer);
|
||||
|
||||
if (Context != NULL)
|
||||
return Context;
|
||||
|
@ -495,7 +495,7 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
ULONG RecordOffset;
|
||||
ULONG IndexBlockSize;
|
||||
|
||||
MftRecord = MmAllocateMemory(NtfsMftRecordSize);
|
||||
MftRecord = MmHeapAlloc(NtfsMftRecordSize);
|
||||
if (MftRecord == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
|
@ -508,14 +508,14 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
IndexRootCtx = NtfsFindAttribute(MftRecord, NTFS_ATTR_TYPE_INDEX_ROOT, L"$I30");
|
||||
if (IndexRootCtx == NULL)
|
||||
{
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
IndexRecord = MmAllocateMemory(NtfsIndexRecordSize);
|
||||
IndexRecord = MmHeapAlloc(NtfsIndexRecordSize);
|
||||
if (IndexRecord == NULL)
|
||||
{
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -534,8 +534,8 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
if (NtfsCompareFileName(FileName, IndexEntry))
|
||||
{
|
||||
*OutMFTIndex = IndexEntry->Data.Directory.IndexedFile;
|
||||
MmFreeMemory(IndexRecord);
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(IndexRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return TRUE;
|
||||
}
|
||||
IndexEntry = (PNTFS_INDEX_ENTRY)((PCHAR)IndexEntry + IndexEntry->Length);
|
||||
|
@ -551,16 +551,16 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
if (IndexBitmapCtx == NULL)
|
||||
{
|
||||
DbgPrint((DPRINT_FILESYSTEM, "Corrupted filesystem!\n"));
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return FALSE;
|
||||
}
|
||||
BitmapDataSize = NtfsGetAttributeSize(&IndexBitmapCtx->Record);
|
||||
DbgPrint((DPRINT_FILESYSTEM, "BitmapDataSize: %x\n", BitmapDataSize));
|
||||
BitmapData = MmAllocateMemory(BitmapDataSize);
|
||||
BitmapData = MmHeapAlloc(BitmapDataSize);
|
||||
if (BitmapData == NULL)
|
||||
{
|
||||
MmFreeMemory(IndexRecord);
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(IndexRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return FALSE;
|
||||
}
|
||||
NtfsReadAttribute(IndexBitmapCtx, 0, BitmapData, BitmapDataSize);
|
||||
|
@ -570,9 +570,9 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
if (IndexAllocationCtx == NULL)
|
||||
{
|
||||
DbgPrint((DPRINT_FILESYSTEM, "Corrupted filesystem!\n"));
|
||||
MmFreeMemory(BitmapData);
|
||||
MmFreeMemory(IndexRecord);
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(BitmapData);
|
||||
MmHeapFree(IndexRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
return FALSE;
|
||||
}
|
||||
IndexAllocationSize = NtfsGetAttributeSize(&IndexAllocationCtx->Record);
|
||||
|
@ -614,9 +614,9 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
{
|
||||
DbgPrint((DPRINT_FILESYSTEM, "File found\n"));
|
||||
*OutMFTIndex = IndexEntry->Data.Directory.IndexedFile;
|
||||
MmFreeMemory(BitmapData);
|
||||
MmFreeMemory(IndexRecord);
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(BitmapData);
|
||||
MmHeapFree(IndexRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
NtfsReleaseAttributeContext(IndexAllocationCtx);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -627,16 +627,16 @@ static BOOLEAN NtfsFindMftRecord(ULONG MFTIndex, PCHAR FileName, ULONG *OutMFTIn
|
|||
}
|
||||
|
||||
NtfsReleaseAttributeContext(IndexAllocationCtx);
|
||||
MmFreeMemory(BitmapData);
|
||||
MmHeapFree(BitmapData);
|
||||
}
|
||||
|
||||
MmFreeMemory(IndexRecord);
|
||||
MmHeapFree(IndexRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
DbgPrint((DPRINT_FILESYSTEM, "Can't read MFT record\n"));
|
||||
}
|
||||
MmFreeMemory(MftRecord);
|
||||
MmHeapFree(MftRecord);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -703,7 +703,7 @@ BOOLEAN NtfsOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
NtfsBootSector = MmAllocateMemory(NtfsBootSector->BytesPerSector);
|
||||
NtfsBootSector = MmHeapAlloc(NtfsBootSector->BytesPerSector);
|
||||
if (NtfsBootSector == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
|
@ -740,10 +740,10 @@ BOOLEAN NtfsOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
NtfsMasterFileTable = MmAllocateMemory(NtfsMftRecordSize);
|
||||
NtfsMasterFileTable = MmHeapAlloc(NtfsMftRecordSize);
|
||||
if (NtfsMasterFileTable == NULL)
|
||||
{
|
||||
MmFreeMemory(NtfsBootSector);
|
||||
MmHeapFree(NtfsBootSector);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -765,7 +765,7 @@ FILE* NtfsOpenFile(PCSTR FileName)
|
|||
PNTFS_FILE_HANDLE FileHandle;
|
||||
PNTFS_MFT_RECORD MftRecord;
|
||||
|
||||
FileHandle = MmAllocateMemory(sizeof(NTFS_FILE_HANDLE) + NtfsMftRecordSize);
|
||||
FileHandle = MmHeapAlloc(sizeof(NTFS_FILE_HANDLE) + NtfsMftRecordSize);
|
||||
if (FileHandle == NULL)
|
||||
{
|
||||
return NULL;
|
||||
|
@ -774,7 +774,7 @@ FILE* NtfsOpenFile(PCSTR FileName)
|
|||
MftRecord = (PNTFS_MFT_RECORD)(FileHandle + 1);
|
||||
if (!NtfsLookupFile(FileName, MftRecord, &FileHandle->DataContext))
|
||||
{
|
||||
MmFreeMemory(FileHandle);
|
||||
MmHeapFree(FileHandle);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -787,7 +787,7 @@ VOID NtfsCloseFile(FILE *File)
|
|||
{
|
||||
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
|
||||
NtfsReleaseAttributeContext(FileHandle->DataContext);
|
||||
MmFreeMemory(FileHandle);
|
||||
MmHeapFree(FileHandle);
|
||||
}
|
||||
|
||||
BOOLEAN NtfsReadFile(FILE *File, ULONG BytesToRead, ULONG* BytesRead, PVOID Buffer)
|
||||
|
|
Loading…
Reference in a new issue