Why do I get a winload.efi (Status: 0xc0000359 error) when using UEFI network boot in System Center 2012 R2 Configuration Manager ?

Introduction

More and more UEFI based hardware is being used in organizations and these UEFI based systems are being imaged via UEFI network boot via Configuration Manager 2012 R2.

Problem

Up until the introduction of UEFI hardware, most organizations use 32 bit (x86) boot images to deploy both 32bit and 64 bit operating systems.

UEFI hardware however requires a that the boot image must match the architecture of the device it’s booting on otherwise it will fail to boot.

So for example, you must use a 64 bit boot wim if the UEFI hardware itself is 64 bit, similarly you must use a 32 bit boot wim if the UEFI hardware is 32 bit. In most cases I’ve dealt with however, the UEFI hardware (for example Surface Pro 3) is already 64bit therefore it would require a 64 bit boot wim.

If you UEFI network boot 64 bit UEFI hardware in an environment that responds with a 32bit boot image, you’ll see the following error

“File: \Windows\System32\boot\winload.efi Status: 0xc0000359”

as shown in the screenshot below

0xc0000359

 Solution

There are a few solutions to this problem, but basically all involve the same thing, make sure that the task sequence deployment that ‘answers’ your UEFI hardware, uses a boot image (wim) that matches the architecture of your UEFI hardware, and in most cases that is a 64 bit boot image as shown below:

64 bit boot wim

The LIFO rule

The task sequence deployment that answers the network boot request will be from the last task sequence deployed to the collection that your computer you are booting is a member of.

I call this the LIFO rule, as in Last In First Out.

You can either add the computer in question (computer+mac address) to a collection that has a task sequence deployed to it with a 64bit boot image or re-deploy a task sequence with a 64 bit boot image to the collection that this computer is a member of, or change the current task sequence to use a 64 bit boot wim instead of a x86 bit boot wim.

If you cannot make a change to any of the UEFI Network deployments then another idea is to use Standalone or boot media containing the 64bit boot image.

Be aware that changing the architecture of your boot wim may cause some executables to fail to run in Windows PE  as the ‘subsystem’ in WinPE will have changed architecture from 32bit to 64bit.  This also means that you can only install a 64 bit operating system using this boot image.

“To install Windows to an EFI-based computer, you must enable EFI mode in the computer’s firmware and boot with 64-bit pre-installation media. ” – source, Technet.

Once you’ve made the changes above, UEFI network boot a client computer again, and you should see it’s using the boot.wim file (package ID) that you attached to the task sequence, in this case it’s using a 64bit boot wim (P0100002.wim)

UEFI network bootas you can see here…

P0100002The end result, is a working UEFI network boot !

UEFI network boot workingcheers

niall

This entry was posted in ConfigMgr 2012, Surface Pro 3, System Center Configuration Manager (Current Branch), UEFI, Windows 10. Bookmark the permalink.

3 Responses to Why do I get a winload.efi (Status: 0xc0000359 error) when using UEFI network boot in System Center 2012 R2 Configuration Manager ?

  1. Pingback: I live and breath SCCM everyday! | SCCM 2012 R2 PXE with UEFI

  2. Pingback: CMImaging_16_OS Deployment failed with 0xc0000359 – Infrastructure Management

  3. Pingback: CMImaging_4_OS Deployment failed with 0xc0000359 – Infrastructure Management

Leave a Reply