UINT64 Position;\r
UINT64 BufferSize;\r
BOOLEAN Unicode;\r
+ UINT64 FileSize;\r
} EFI_FILE_PROTOCOL_MEM;\r
\r
/**\r
OUT UINT64 Position\r
)\r
{\r
- if (Position <= ((EFI_FILE_PROTOCOL_MEM*)This)->BufferSize) {\r
+ if (Position <= ((EFI_FILE_PROTOCOL_MEM*)This)->FileSize) {\r
((EFI_FILE_PROTOCOL_MEM*)This)->Position = Position;\r
return (EFI_SUCCESS);\r
} else {\r
}\r
CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, Buffer, *BufferSize);\r
MemFile->Position += (*BufferSize);\r
+ MemFile->FileSize = MemFile->Position;\r
return (EFI_SUCCESS);\r
} else {\r
//\r
}\r
CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, AsciiBuffer, AsciiStrSize(AsciiBuffer));\r
MemFile->Position += (*BufferSize / sizeof(CHAR16));\r
+ MemFile->FileSize = MemFile->Position;\r
FreePool(AsciiBuffer);\r
return (EFI_SUCCESS);\r
}\r
EFI_FILE_PROTOCOL_MEM *MemFile;\r
\r
MemFile = (EFI_FILE_PROTOCOL_MEM *) This;\r
- if (*BufferSize > (UINTN)((MemFile->BufferSize) - (UINTN)(MemFile->Position))) {\r
- (*BufferSize) = (UINTN)((MemFile->BufferSize) - (UINTN)(MemFile->Position));\r
+ if (*BufferSize > (UINTN)((MemFile->FileSize) - (UINTN)(MemFile->Position))) {\r
+ (*BufferSize) = (UINTN)((MemFile->FileSize) - (UINTN)(MemFile->Position));\r
}\r
CopyMem(Buffer, ((UINT8*)MemFile->Buffer) + MemFile->Position, (*BufferSize));\r
MemFile->Position = MemFile->Position + (*BufferSize);\r