- Add global var for keeping size of NLS data in pages

- Restructure memory-map building loop to create special descriptor for NLS data
- Fix a bug in memory-map building loop which lead to not covering last XXX pages of memory

svn path=/trunk/; revision=24483
This commit is contained in:
Aleksey Bragin 2006-10-10 15:20:03 +00:00
parent 79e9d9d8aa
commit e81472d5d0
2 changed files with 997 additions and 948 deletions

File diff suppressed because it is too large Load diff

View file

@ -13,6 +13,9 @@
#define NDEBUG
#include <debug.h>
// The only global var here, used to mark mem pages as NLS in WinLdrTurnOnPaging()
ULONG TotalNLSSize = 0;
BOOLEAN WinLdrGetNLSNames(LPSTR AnsiName,
LPSTR OemName,
LPSTR LangName);
@ -327,6 +330,9 @@ WinLdrLoadNLSData(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
MM_SIZE_TO_PAGES(OemFileSize) +
MM_SIZE_TO_PAGES(LanguageFileSize);
/* Store it for later marking the pages as NlsData type */
TotalNLSSize = TotalSize;
NlsDataBase = (ULONG_PTR)MmAllocateMemory(TotalSize*MM_PAGE_SIZE);
if (NlsDataBase == 0)