Deploying software and updates using Configuration Manager
The described WinPE 24H2 PnP regression and the specific CM_PROB_REINSTALL / STATUS_PNP_REBOOT_REQUIRED behavior for injected drivers and ROOT\KDNIC are not documented in the provided context, and no official fix or design note for ADK 26100+/28000 WinPE is available there.
The context only covers:
- Supported and recommended methods for injecting drivers into WinPE and install.wim (DISM, $WinPEDriver$, Drvload, unattend, scripts).
- General guidance and limitations around $WinPEDriver$ and driver versioning.
- How PnP status and problem codes are represented and retrieved.
- How to permanently remove drivers and devices using Device Manager and pnputil.
Within that scope, the only supported, documented mechanisms that are relevant to the workaround pattern are:
- PnP status / problem codes
- Device status and problem codes are exposed via the unified device property model and CM__Get_DevNode_Status, and in newer Windows also via a problem status property that carries an NTSTATUS value such as STATUS_PNP_REBOOT_REQUIRED.
- This matches the pattern being observed (Problem Code 18 with a problem status NTSTATUS), but the context does not document any WinPE-specific behavior or suppression of STATUS_PNP_REBOOT_REQUIRED.
- Removing driver packages and devices with pnputil
- Official guidance for permanent removal of a driver package is to use
pnputil /delete-driver <Published Name> /uninstall, which updates devices to another driver or leaves them without a driver if none is available. This is the supported way to ensure a driver is not automatically reinstalled. - The context also documents
pnputil /disable-deviceand/enable-devicefor manipulating devices, but does not document/remove-deviceor/scan-devices, nor any WinPE-specific usage patterns.
- Official guidance for permanent removal of a driver package is to use
- Driver injection into WinPE
- For WinPE, the documented and supported approach is to inject drivers into boot.wim using DISM, or to use $WinPEDriver$ or Drvload in WinPE, with the key constraint that driver versions must be consistent across boot.wim and install.wim.
- The article explicitly warns that mixing driver versions or loading conflicting drivers during the WinPE phase can cause drivers to be marked as “Bad” and not selected by PnP later.
- However, there is no mention of CM_PROB_REINSTALL, STATUS_PNP_REBOOT_REQUIRED, or a requirement to reboot in WinPE.
Given the available documentation, the only fully supported guidance that aligns with the scenario is:
- Use the documented driver injection methods (DISM into boot.wim, $WinPEDriver$, or Drvload) and ensure driver versions are consistent between WinPE and the target OS image.
- Use pnputil only as documented (for example,
/delete-driverto remove driver packages,/disable-deviceand/enable-deviceto control devices). - For device status and problem codes, rely on the unified device property model or CM__Get_DevNode_Status for diagnostics, but there is no documented way in the context to change PnP’s STATUS_PNP_REBOOT_REQUIRED behavior in WinPE.
The requested change—having the PnP manager detect WinPE (MiniNT) and suppress STATUS_PNP_REBOOT_REQUIRED—is not covered in the provided documentation, and no official fix or configuration knob is documented there. The workaround using pnputil /remove-device and /scan-devices is not described in the context and therefore cannot be validated or recommended based on it.
For an official fix or design change to WinPE/ADK behavior, the appropriate path is to file feedback or a support case with Microsoft so the product team can investigate the regression and consider the requested behavior change.
References: