Can't edit App layer, boot error 0xC000000F; but OS and Platform Layers work OK

Can't edit App layer, boot error 0xC000000F; but OS and Platform Layers work OK

book

Article ID: CTX241458

calendar_today

Updated On:

Description

After an OS update, or after your initial OS import, you may be unable to create App Layers, with a cryptic 0xC000000F boot failure that does not tell you what file is missing.  Creating Platform Layers and creating OS layers works fine, however.

Resolution

First, verify this is not https://support.citrix.com/article/CTX238440 .  The error message is normally different, but that's the most likely cause: language issues.

Second, Add Version to your OS layer, run CMD As Administrator, and do the following.  This will trigger a new scan of critical OS system files to update our list of critical system files.

CD \Program Files\Unidesk\Uniservice
Uniservice.exe /B
<Reboot>

Then finalize that and test creating a new app layer again.

Otherwise, this is a system driver that has not been properly copied to the boot disk.  This does not apply to OS and Platform layers because the boot disk is handled differently.  But with App Layers, the boot disk is a thin disk that contains just enough Windows to get minifilter drivers running.  0xC000000F means we missed copying something to the boot disk.

Unfortunately, you can't tell what we missed.  What you need to do is version your OS layer to get a record of a successful boot.  Login, run msinfo32, Boot, and enable Boot Logging.  This will create a boot log file called C:\Windows\ntbtlog.txt that conatins, in order, every file loaded during boot.  Reboot to generate the log, and copy it to a file share.  Leave the packaging machine for the OS layer open, you will need it again in a minute.

On the packaging machine for the App Layer that fails to boot, attach your Windows installer ISO.  Boot from that.  When you get the the first Windows Setup dialog, type Shift-F10, which will bring up a command prompt window.  In this machine, X: is the CD-ROM, C: is the mini boot disk, D: is the OS layer, and E: is the package disk.  We care about C: and D:.  Specifically, we care about what is in D: that is not in C: but should be.

Load up ntbtlog.txt in Notepad.  In the command prompt window, type "C:" to get to the C drive, and then "CD \Windows\system32".  All of your important files will be in \Windows\system32 or \windows\system32\drivers.  Read through the ntbtlog.txt, and check that each file is on your C: drive.  For any files which are not, copy them from the D: drive with a command like this:

XCOPY /CHOK D:\Windows\system32\drivers\ntosext.sys C:\Windows\system32\drivers

The parameters to XCOPY ensure that the permissions and attributes are copied as well.  Note every missing file.  Once you have found and copied in the missing files, reboot from the hard drive, not the CD-ROM.  Verify that your app layer now boots.  Cancel the App Layer.

Back in the OS layer, edit C:\Program Files\Unidesk\Uniservice\bootfile.txt.  Add the correct path for the missing files to the bottom of bootfile.txt.  Note that the directory separators are / instead of \.  So for instance, add the following line:

C:/Windows/system32/drivers/ntosext.sys
C:/Windows/system32/drivers/clipsp.sys

Save the file, finalize, and attempt to create a new app layer with the new OS version.  If this works, please open a Support Case and let Citrix know about this file.  Normally we would have picked it up with the Uniservice /B scan.  We will likely ask for other information from your OS layer, including if you know what updates might have triggered this.  However, with the modified bootfile.txt, you should be able to continue your deployment.