Symptoms
Assume that you try to start a multilingual x86-based version of Windows 8 on computer from Microsoft Windows Preinstall Environment (PE) 4.0. When one of the following conditions is true, you cannot start the computer:
-
The Windows Imaging Format (WIM) file of Windows PE contains more than two language versions.
-
The size of Windows PE WIM file is larger than 300 megabytes (MB).
Cause
This issue occurs because the Windows Boot Manager does not release the heap-allocated buffer before loading Winload.exe.
In the x86-based version of Windows 8, the block I/O code of the Windows Boot Manager needs at most two additional blocks to be read into the buffer that is allocated by the caller. A new buffer is heap-allocated to complete the read. Winload.exe maps all the allocations of the Windows Boot Manager one by one before the memory manager initialization is completed. To map all the allocations, a static array is used for 500 memory descriptors. Additionally, Winload.exe tries to map the WIM file and aligned WIM buffer regions that are larger than 300 MB. In this situation, Winload.exe runs out of descriptors and cannot return to the Windows Boot Manager. Therefore, the issue that is described in "Symptoms" section occurs. Note The issue does not occur under the one of the following situations:-
The WIM file is read in 1 MB chunks. The startup performance in Windows 8 compared to the startup performance in earlier versions of Windows is improved. More specifically, the WIM file can be read from disk in one large read instead of in 1 MB chunks
-
You start an x64-based version of Windows 8 or Windows RT. The issue does not occur because the Windows Boot Manager creates the map for Winload.exe and does not have a static descriptor limit at that time.
Resolution
To resolve this issue, build a custom WIM file to increase the size of the WIM. To do this, follow these steps:
-
Click the following link to download the update package:
-
Create a folder that is named MSUFolder on drive C, and then create another folder that is named cabfile inside the MSUFolder folder.
-
Double-click the update package to open the Microsoft Self-Extractor dialog box, click Continue, and then unzip the files to the MSUFolder folder.
-
At the command prompt, run the following commands to expand the files. Press Enter at the end of each command:
cd C:\MSUFolder
expand -F:* Windows8-RT-KB2755855-x86.msu C:\MSUFolder
expand -F:* Windows8-RT-KB2755855-x86.cab C:\MSUFolder\cabfileNote The fix that is described in this article is contained in the x86_microsoft-windows-b..re-bootmanager-pcat_31bf3856ad364e35_6.2.9200.16414_none_c0206fbe845e815b.manifest file.
-
Create a new Windows PE image that includes this update. For more information about how to create a custom Windows PE image, go to the following Microsoft website:
General information about how to create a custom Windows PE image
Note These steps assume that the Windows8-RT-KB2755855-x86.msu file and the Windows8-RT-KB2755855-x86.cab file are located in the MSUFolder folder. If the files are in another location, replace "C:\MSUFolder" with the path of the files. If you renamed the cabfile folder, replace "C:\MSUFolder\cabfile" accordingly.
Prerequisites
To apply this update, you must be running an x86-based version of Windows 8.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
More Information
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates