Problems in loading Display drivers early in WinPE

AZBruno 116 Reputation points
2022-08-14T20:08:57.777+00:00

I am trying to understand the sequence of drivers being loaded within winpeshl.exe and wpeinit.exe. The reason is that the oem display driver is needed to properly handle the resolution settings in unattend.xml. I'm looking at a recovery media created by a commercial backup/recovery product to trace the process.

The winpesh.log shows it beginning PNP initialization, ..., launching startnet.cmd and ending with "PNP initialization succeeded; terminating thread." wpeinit.exe is started from startnet.cmd.

The wpeinit.log shows early on an attempt to initialize a display setting, but it fails because the resolution is not accepted. The proper oem display driver is installed into the .wim, but it is not loaded.

Looking at setupapi.dev.log, I can see the network driver being loaded at a time corresponding to the wpeinit.log entry for installing the network driver. I then see later the oem Display driver being loaded with [Device Install (Hardware initiated). All this is happening well after winpeshl.log says PNP initialization has succeeded.

Oddly, a tester I am working with has a similar recovery drive but in his case the setupapi.dev.log shows the Display driver as the first one loaded and it is completing before the wpeinit.log shows the resolution being set. As a result, his odd resolution is accepted. We are trying to understand the difference here.

This brings up some questions.

  1. What exactly does PNP initialization do?
  2. Will PNP initialization load the oem Display drivers (which are not Boot Critical)?
  3. Is there something in the way in which the display driver is installed in the wim which could make it load sooner?
  4. Is there something else that is required after WinPE boots to get the driver installed.
  5. Is there something else I'm missing that could explain the differences between two similar cases.

FYI, I've built a wim using a different approach which calls drvload prior to wpeinit, and that seems to work in getting the resolution in unattend.xml to succeed.

Thanks.

EDIT:
As it turns out, the two cases differ in that I had a WinRE based build whereas the other tester had a WinPE based build from the ADK. That doesn't clear anything up, but it does note a difference. It seems that both cases have the same (2) inbox and (1) out of box Display drivers.

Windows 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
10,658 questions
Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,546 questions
Windows 11
Windows 11
A Microsoft operating system designed for productivity, creativity, and ease of use.
8,220 questions
0 comments No comments
{count} votes