Archive for category boot process
Recently we started the deployment of Windows 7 Enterprise (x64) throughout the company that I work for. The targeted hardware were DELL Optiplex 980, 990 and 9010 model desktops. The nightmare began after deploying several Optiplex 990 models. We use Microsoft System Center Configuration Manager 2012 SP1 to deploy the OS and applications to these desktops.
After deploying over 20 Optiplex 990 models, we noticed that on some 990s we were getting continuous BSOD’s after a day or two (the BSOD’s also came after a week of having the computer in production!). After a desperate call to Microsoft, it was determined that the BSOD code was a generic hardware error code. However, Microsoft was unable to pin-point the issue after 3 weeks of troubleshooting!
The one thing that came to mind was that the recent models that I deployed were older model Optiplex 990 desktops (possibly 2012 and very early 2013 models) , but at that time I failed to look into this clue. Luckily, and I mean luckily, I was able to catch the culprit of this nightmare, and here are the screenshots.
Note: disregard the failed PCI driver controller installation
Basically, you’re looking at a hijacked SATA driver installation!
These DELL Optiplex 990 models come with a SATA drive and controller installed. As a matter of fact, when Windows 7 Enterprise gets installed, SATA drivers are loaded for this computer; however, sometime post installation Windows finds, or detects, an IDE ATA chipset and without any warning, it installs the Intel(R 6 Series/C200 Series Chipset drivers!
To make matters worst, I’ve configured the OS Deployment in SCCM to use native DELL drivers specific for this computer model, yet Windows Updates comes a day or two later and replaces them with the Intel(R 6 Series/C200 Series Chipset drivers.
The quick, and lazy fix, is to go to the BIOS and change the drive controller settings from Raid On (default setting) to ATA.
I’ve yet to identify the reason why this change in disk controller drivers.
This article is somewhat not complete, and it may contain some incorrect definitions, but it’s out there mainly for reference. Updates coming soon!
- Open Regedit and go to HKLM
- Expand HKLM\Select and look at the value of Current key
- Based on the value of Current key (1, 2 or 3), select the proper HKLM\System\ControlSet00x
- Expand HKLM\System\ControlSet00x\Control\Class
- Under Class you’ll get a list of drivers that load during the boot process of Windows 7
- In each driver entry, under the Class folder, look for the following keys: LowerFilters and UpperFilters – these are some of the drivers that load during the boot process