Many of you must be wondering what SMI settings are and how these settings could be used to configure Windows Embedded Standard 7 image. Let me explain…
What is an SMI Setting?
Settings Management Infrastructure (SMI) is a schema that is used to define mutable operating system settings. A mutable setting is a variable setting in which the value of the setting can be changed, either by other components or by the user or administrator. For example, user-preferred fonts and font colors are mutable settings.
Mutable settings can reside in any settings store in the operating system, such as the registry, .ini files, or some other public store, such as the IIS Metabase or the WMI repository. These settings are exposed to OEMs and Corporations to enable customization and make deployment of the OS easier.
In Windows Embedded Standard 7, these settings are included with each component in a Feature Package. In ICE, once you select a feature package to be included in your answer file, you will be presented with a list of settings that correspond to every component in the package you selected.
What is a ‘Pass’ and what effect does it have on settings?
A “pass” is a certain phase during an automated unattend setup in which unattend settings are applied. A setting could apply to one or more passes. There are 2 types of unattend passes: online and offline passes. Offline passes are staged with an OS image that is not currently running. Offline Servicing is an offline pass. Online passes occur on an actively running OS and are used to apply settings and packages during Windows Setup. The following passes are online passes: Generalize, Specialize, Audit System, Audit User and OOBE System.
- Generalize: All machine-specific information is removed from the image
- Specialize: Machine-specific information for the image is created
- Audit System: Allows OEMs and corporations to add additional device drivers and applications to the image
- Audit User: Similar to the Audit System pass but these settings are processed after users log in, not before they have logged in
- OOBE System: Includes pre-OOBE settings, as well as settings from winbom:OOBE and oobeinfo.ini. This pass defines the first boot experience for end users
How are SMI settings changed?
You will only be able to edit settings for the packages that have been added to your image. Note that edit mode is enabled only for a pass that the setting value is applicable to. On the top right corner of the settings pane, first select the pass that you want your setting value to apply to. For example, the setting “EnablePrefetcher” applies to all 7 passes (P1, …., P7). Now select “6 Audit User” from the “Filter view by:” dropdown. This should show you all the settings that apply to the selected pass. Now, click on the value field of “EnablePrefetcher” which provides a text field in which to enter your value.
The screenshot below shows the list of all settings in the foundation core of Windows Embedded Standard 7. Note that since the Filter by (on top right corner) is selected as “All Settings”, the settings displayed in the pane below are not editable. To be able to edit a setting, you will need to select the pass you want the change to apply to.
In this screenshot, the Offline Servicing pass is selected for the setting “EnablePrefetcher”. Now the value of this setting is editable.
I’ve now changed the value of the setting to 1 which will now be applied to the Offline Servicing pass during an unattended install.
Special settings in WES7
Settings whose default values are different from those in Win7
Most of the settings have a default value already provided. For example, setting “FavoritesOnTop” in the Internet Explorer 8 Browser package has a default value of “false”. This means that new favorites are not added to the top of the favorites menu.
The Windows Embedded Standard 7 team identified some settings that needed to have a different default setting that what it is in Win7. For example, in Win7, the aero theme is not enabled by default since the associated service is not started. For certain embedded scenarios, OEMs would like to build an image with Aero theme enabled by default. In order to accomplish this, the theme service needs to be auto-started (apart from adding the necessary packages to the image – Shell Foundation, System Control Panel and Windows Explorer). Thus the setting value for “Start” in Windows Shell package is by default set to 2 (which translates to auto-start).
Settings unique to WES7
Based on feedback that we received from our customers, we realized the need for certain embedded specific settings that are not available in the desktop Windows operating system. Some examples include “PagingFiles” in Windows Embedded Edition package (to enable Page File), “HibernateEnabled” in Power Management package (to enable Hiber File), “EnableLUA” in Windows Embedded Edition package (to enable UAC).
Settings linked by two or more packages in WES7
We also realized that some feature package settings had to be set to a particular value if a certain Embedded Enabling Feature was added to the answer file. Otherwise it would result conflicting behavior. For example, imagine that a user selects a paging file to be generated. The user also adds File Based Write Filter (FBWF) to the image. Now there is a functionality conflict because the first setting forces a page file to be generated. However, the presence of FBWF prevents the writing of any file on the drive. To help remedy this situation, we implemented the concept of linked settings. The idea behind this is that when packages with linked settings are added to the answer file, the user is informed of this and prompted to take an action to sett an appropriate value for the setting in question.
For example: Here I have created an answer file with the Windows Embedded Foundation and the File Based Write Filter packages only. Notice that I have selected to view settings in the Offline Servicing pass. You will see a setting for PagingFiles in the Windows Embedded Edition package.
Now, I change the value of this setting and modify it to be “C:\”. This should allow the system to create a paging file in the C:\ drive of the device.
Once I make the changes, I validate the answer file. An error message is displayed in the Messages pane of ICE. This error message recommends that user change the value of pagingfiles to “” (set it to empty). Once you change this value to the recommended one and validate the answer file again, the error message disappears.