Software Enumerated Devices – how to avoid them in your PMQ
One of the biggest image footprint impact areas is in regards to “SWEnums” or “Software Enumerated Devices”. (pronounced “Swee-numbs”) “How do these get into my image?” you may ask? There’s a simple answer and a couple simple solutions or a more in-depth solution to this behavior. Please note – I’m not going to provide the end-to-end solution in this post; however, my goal is to get you, as the reader, aware of your options and what to look for with regards to removing the SWEnums from your image.
The “Simple Answer”
Simply put – SWEnums are device drivers for virtual (AKA – no physical device really exists) devices. These include, but certainly are not limited to, “WAN Miniport (<type>)”, “RAS Async Adapter”, “Plug and Play Monitor”, etc.
The “Simple Solutions”
There are a few methods which you may employ to get these drivers removed from your PMQ. The First, and the easiest, method is to simply specify the “/I” argument when you run TAP to generate your PMQ. This tells TAP to “Ignore SW enumerated devices”. Pretty easy, right? This functionality was introduced with the Feature Pack 2007 release.
The second easy method is to use WinPE as your OS when you run TAP; however, this method is only easy if you have WinPE available to you. The reason why this works is because WinPE (to my knowledge) does not have any of these devices installed. Still pretty easy, right?
The third, but so not easy, method is to manually remove these devices from the “SW” category from your PMQ. Please note – you *must* leave the actual start and end category tags for the “SW” category in your PMQ. The XML nodes look like the following:
<CATEGORY Name="SW">
<DEVICE ConfigFlags="0">
<DEVICEDESC>@netrasa.inf,%mp-asyncmac-dispname%;RAS Async Adapter</DEVICEDESC>
<HARDWAREIDS>
<DEVICEID Order="1">SW\{eeab7790-c514-11d1-b42b-00805fc1270e}</DEVICEID>
</HARDWAREIDS>
<COMPATIBLEIDS>
</COMPATIBLEIDS>
</DEVICE>
<DEVICE ConfigFlags="0">
.
.
.
</CATEGORY>
As stated before, you want to remove the “<DEVICE>” to “</DEVICE>” XML code but you want to leave the overall “<CATEGORY></CATEGORY>” XML nodes.
Summary
In summary, these are some good methods for reducing your overall footprint size for your runtime. SWEnums account for some of the largest non-feature runtime footprint bloat that is easily corrected at the early stages of configuration development. Also – be sure to check out the other TAP commands by specifying the “/?” argument to the application.
Cheers!
- Nick
Technorati Tags: XPe, EEFs, RegFilter
Comments
Anonymous
September 25, 2008
PingBack from http://hoursfunnywallpaper.cn/?p=7901Anonymous
September 28, 2008
Serial ports are especially troublesome since they require a solid enumeration, and the systems will generally not work without them. When Windows drops and re-enumerates, they start at a much higher value (Com13, Com14, ...) Is there a way to assign a device name to a hardware port? That would solve these issues without removing the required devices. Thank you, WJMAnonymous
September 29, 2008
196 Microsoft Team blogs searched, 97 blogs have new articles in the past 7 days. 218 new articles found...