Windows Aero

Windows Aero
Microsoft Windows visual style
Windows Aero in Windows 7
Windows Aero in Windows 7
Included inWindows Vista and later
First seen inWindows Longhorn build 4015 (main)

Aero is a translucent Windows visual style used from Milestone 5 Longhorn builds to Windows 7 (window transparency was removed in 8). The first known build to reference Aero is Windows Longhorn build 4015 (main), and the last build with Aero that has functional window transparency is Windows 8 build 8427. In Windows Longhorn, Aero effects relied on the Desktop Compositing Engine (or Desktop Window Manager in newer builds), which only worked in a few builds such as 4038, 4039, 4042, 4066, and 4074.

In Windows Vista and 7, the theme relies on a WDDM driver due to the use of hardware acceleration. If hardware acceleration is not supported, the Windows Basic theme would instead be used. This requirement was dropped since at least Windows 8 build 7880 with the introduction of a software rendering fallback to the Desktop Window Manager. The theme is also available in server editions of Windows from Windows Server 2008 onwards.

Aero in Pre-reset Longhorn[edit | edit source]

No pre-reset builds of Longhorn contained the Aero theme. There is a very common misconception that Aero can be 'enabled' in pre-reset builds of Longhorn by renaming visual style files; renaming the files tricks the OS into assuming that the user has access to the private, unleaked Aero theme, and therefore enables various DCE/DWM effects. For example, renaming plex.msstyles to aero.msstyles in M6 builds (slate.msstyles to aero.msstyles for build 4042 (Lab06_n)) will grant the user the Glass DCE window frame, but will retain much of the Plex (Slate for 4042 (Lab06_n)) style. For M7 builds, the Aero visual style may be re-created using the Jade visual style, although the process is not as simple as renaming jade.msstyles to aero.msstyles.

Windows Longhorn build 4038 to build 4042 (Lab06_n)[edit | edit source]

Firstly, make sure to install a compatible Direct3D driver and verify its functionality using dxdiag.exe. Although running sbctl (in C:\WINDOWS\i386) with the parameter start will enable the DCE borders, it will appear opaque. The User Experience Desktop Server checks the existence of %windir%\Resources\Themes\Aero\aero.msstyles; if it is located, transparent Glass borders will be applied instead of the opaque Metal border. To enable transparent borders, navigate to C:\WINDOWS\Resources\Themes and copy the "Plex" folder ("Slate" for the Lab06_n compile of build 4042). Paste the copied folder back into the Themes directory, which will automatically rename itself to "Plex - Copy" ("Slate - Copy" for the aforementioned build). Rename the newly copied folder to "Aero" and rename the .msstyles file inside to aero.msstyles. Subsequently, restart the theming service (either by executing net stop winux and net start winux for Lab06 builds or by logging off and back on). Finally, run sbctl start once more to enable the glass borders.

Windows Longhorn builds 4066 to 4082[edit | edit source]

This is a guide on how to enable Aero theme in Longhorn build 4066 to 4082.[a]

Video Drivers and Theme Files[edit | edit source]

If using VMware Workstation version 7.1, it is essential to have an appropriate SVGA driver installed. To install the driver, go to the Device Manager, locate 'Graphics' and click 'Update Driver' with the mounted or burned driver pack ISO (Device Manager might not function correctly on builds 4081 and 4082 due to missing hdwwiz.cpl. Additionally, these builds may require booting into VGA display mode after updating the driver, otherwise it may result in a 0x000000B4 BSOD. This is caused by a failure to initialize the video driver).

Builds 4081 and 4082 ship with an incomplete copy of DirectX 9, which can cause a black screen when DWM is enabled. The missing components can be obtained from the DirectX 9.0b or 9.0c installer for Windows XP. The installer itself will not work on Longhorn, but this can be bypassed by manually extracting the contents of dxnt.cab and installing all of the .inf files found within from their right-click menus (answer no to all overwrite prompts), and copying any remaining files from dxnt.cab into System32. Verify successful installation by running the Direct3D tests in dxdiag (it may complain about DirectShow not being registered, but the spinning 3D cube animation can still confirm DirectX is functional).

Subsequently, the Aero theme files should be reconstructed. Aero theme files may be reconstructed based on Jade, and here is a reconstructed aero.msstyles file. After that, create a folder named Aero in the %WinDir%\Resources\Themes directory, and place the reconstructed aero.msstyles inside the newly created Aero folder. Once that is done, go back to %WinDir%\Resources\Themes, make a copy of jade.theme and name it as aero.theme. The last step is to modify the aero.theme file to load the reconstructed aero.msstyles. Open aero.theme with Notepad and change DisplayName=@themeui.dll,-2013 to DisplayName=Aero, then replace all instances of 'Jade' with 'Aero' and save it.

The last step is to modify the Registry to allow the Aero theme to be applied. Open Registry Editor, browse to HKLM\Software\Microsoft\Windows\CurrentVersion\ThemeManager, create a DWORD called DemoCheckOverride and set its value to 64222 (or 0xFADE in hexadecimal).

Differences between Aero and Jade[edit | edit source]

The public DWM theme, Jade differs from the private Aero theme in a few aspects. This section lists some technical information regarding the differences.

Auto-enabling DWM (UsesComposition)[edit | edit source]

The private Aero theme enables DWM to activate automatically upon application or login. In order for the Jade theme to have the same functionality, the value of a BOOL named UsesComposition must be patched to TRUE.

DemoCheck[edit | edit source]

The private Aero theme contains a string under the theme documentation class called DemoCheck, which is used by the Theme Manager to make sure that the Aero theme may only be applied on Microsoft's demo machines. It contains the path name of a file on Microsoft's network share, which may only be accessed by Microsoft employees. The theme will apply if that file is accessible, otherwise an Access Denied error will be thrown. If the demo check passes, the Animated Preview Pane Aurora will also be enabled, but the demo check is ineffective due to some logical errors in its implementation. It is optional to have DemoCheck added to the Jade theme by adding the DemoCheck string with the data \\cloak2\drop\bin\enlist.txt to the theme documentation.

Aero resources[edit | edit source]

Needless to say, the private Aero theme contains Aero resources such as transparent Glass window frames, but it is currently unavailable. To reconstruct the Aero theme as closely as the original one, replace the Jade (STREAM) resources with modified post-reset Aero resources (it is recommended to use RealAero resources, which uses the modified build 5048 resources).

Animated Preview Pane Aurora (APPA)[edit | edit source]

The private Aero theme also has resources for an animated version of the preview pane, also known as Animated Preview Pane Aurora (APPA). It is stored in a BAML file in the theme file. In its current vanilla state in the Jade theme, it is outdated, which is incompatible with the system's default BAML parser. Therefore, the BAML file must be updated to the newest format in order for it to render in the preview pane.

Miscellaneous[edit | edit source]

The Jade.msstyles file has a number of plaintext and binary 'Jade' strings, which you can choose to replace with 'Aero'.

MIL Effects[edit | edit source]

To enable Media Integration Layer (MIL) effects in Explorer, merge the following entries into the registry:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"MILExplorer"=dword:00000001

To enable MIL effects on the Desktop (the animated Aero Stars effects), set the value MILDesktop DWORD to 1 in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer. After that, restart Explorer by typing tskill explorer in Run or apply a patched Aero theme with the UsesComposition BOOL set to TRUE (see above for instructions to manually patch the Aero theme) to automatically enable DWM, in addition to enabling the transparent taskbar and sidebar.

DWM may fail to load if appropriate display drivers are not installed, which can lead to Aero Glass borders and Explorer not rendering properly if MIL effects are enabled.

Windows Longhorn builds 4088 to 4093[edit | edit source]

Builds within this range feature a Managed .NET rewrite of the Desktop Window Manager. This version would be abandoned after the reset, and would be replaced with a new native implementation that is largely different from the one used in builds prior to 4083. Unlike native implementations in both pre-reset and post-reset builds, this version can run even on the "Standard VGA Graphics Adapter" driver.

The new implementation is found in the component package C:\build\filerepository\windowmanager_a2ea4897, and is called windowmanager.exe. Two XAML files, DwmDsk.xaml and DwmWin.xaml, are not present in the builds and must be reconstructed in the same directory as windowmanager.exe. These were likely meant to be eventually included as BAMLs in the aero.msstyles file, had the managed DWM implementation not been ditched due to the development reset. An earlier version of the Jade theme (preferably the one found in builds 4066 to 4082, as some DWM resources that were in STREAM folder got converted to bitmaps in builds 4088 to 4093's Jade) or modified Jade from this range of builds that replaces bitmaps with their PNG counterparts is required in order to allow DWM to work.

To enable DWM, create the file DwmDsk.xaml in the directory C:\build\filerepository\windowmanager_a2ea4897 with the following contents:

DwmDsk.xaml:

<?Mapping XmlNamespace="mscorlib_System" ClrNamespace="System" Assembly="mscorlib" ?>
<?Mapping XmlNamespace="windowmanager.WindowLayouts" ClrNamespace="WindowLayouts" Assembly="WindowManager" ?>
<Canvas xmlns="http://schemas.microsoft.com/2003/xaml/" xmlns:wl="windowmanager.WindowLayouts" xmlns:System="mscorlib_System" xmlns:def="Definition" Width="800" Height="600" Background="#80FF0000">
  <Canvas.Resources>
    <Style def:Name="ItemsControlStyle">
      <ItemsControl/>
      <Style.VisualTree>
        <FlowPanel Width="400" Height="600" ItemsControl.IsItemsHost="true" Background="#8000ff00"/>
      </Style.VisualTree>
    </Style>
    <Style def:Name="ItemsControlStyle2">
      <ItemsControl/>
      <Style.VisualTree>
        <wl:CascadePanel ID="myCascadePanel" ItemsControl.IsItemsHost="true"/>
      </Style.VisualTree>
    </Style>
  </Canvas.Resources>
  <wl:CascadeItemsControl ID="DesktopView" Background="#ccffffff" Style="{ItemsControlStyle2}">
    <CollectionContainer Collection="*Bind()"/>
  </wl:CascadeItemsControl>
  <ItemsControl ID="TaskBarIconView" Width="400" Height="600" Background="#40334455">
    <CollectionContainer Collection="*Bind()"/>
  </ItemsControl>
</Canvas>

Create C:\build\filerepository\windowmanager_a2ea4897\DwmWin.xaml with the following content:

DwmWin.xaml:

<?Mapping XmlNamespace="mscorlib_System" ClrNamespace="System" Assembly="mscorlib" ?>
<?Mapping XmlNamespace="windowmanager.WindowLayouts" ClrNamespace="WindowLayouts" Assembly="WindowManager" ?>
<?Mapping XmlNamespace="explorer" ClrNamespace="MS.Internal.Desktop" Assembly="System.Windows.Explorer" ?>
<FlowPanel xmlns="http://schemas.microsoft.com/2003/xaml/" xmlns:wl="windowmanager.WindowLayouts" xmlns:System="mscorlib_System" xmlns:def="Definition" Width="800" Height="600" Background="#80FF0000">
  <FlowPanel.Resources>
    <Style def:Name="NonClientAreaStyleNone">
      <wl:UserWindowChrome Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <Canvas ID="Region_WindowTransform">
          <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
        </Canvas>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleBorder">
      <wl:UserWindowChrome Background="#800000ff" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <Canvas ID="Region_WindowTransform" Background="#800000ff">
          <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
          <Text TextContent="*Bind(Path=Title)"/>
        </Canvas>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleFrame">
      <wl:UserWindowChrome Background="#8000ffff" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <DockPanel ID="Region_WindowTransform">
          <DockPanel DockPanel.Dock="Top">
            <Canvas DockPanel.Dock="Right">
              <fullexp:HackImage xmlns:fullexp="explorer" Margin="0,0,0,0" fullexp:HackSource="theme://CompositedWindow,SDB_BACK,SDBTB_NORMAL" fullexp:HackNineGrid="9,105,150,9" Width="100%" Height="100%"/>
              <Grid Width="100%" Margin="0,6,0,0">
                <ColumnDefinition Width="8"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="8"/>
                <DockPanel ID="Region_Resize" Grid.Column="1" Background="#00000000">
                  <fullexp:HackImage xmlns:fullexp="explorer" fullexp:HackSource="theme://CompositedWindow,SDB_CLOCKGLASS,SDBTB_NORMAL" Width="20" Height="17" Background="#FFFF0000" DockPanel.Dock="Left"/>
                  <Text TextContent="*Bind(Path=Title)" DockPanel.Dock="Left" Margin="3,3,0,0"/>
                </DockPanel>
              </Grid>
              <DockPanel DockPanel.Dock="Bottom" Margin="0,27,0,0">
                <DockPanel DockPanel.Dock="Left" Margin="9,0,9,9">
                  <Image ID="ClientArea" Source="*Bind(Path=ClientArea)" DockPanel.Dock="Right"/>
                </DockPanel>
              </DockPanel>
              <DockPanel Width="100%">
                <fullexp:HackImage xmlns:fullexp="explorer" ID="FakeCloseButton" fullexp:HackSource="theme://CompositedWindow,SDB_EXPANDO_CLOSED_HORIZ,SDBTB_NORMAL" Width="43" Height="14" DockPanel.Dock="Right" Margin="0,1,6,0" fullexp:HackNineGrid="0,0,14,0"/>
                <fullexp:HackImage xmlns:fullexp="explorer" ID="FakeMaximizeButton" fullexp:HackSource="theme://CompositedWindow,SDB_STARTBUTTON,SDBTB_NORMAL" Width="25" Height="14" DockPanel.Dock="Right" Margin="0,1,0,0" fullexp:HackNineGrid="0,0,14,0"/>
                <fullexp:HackImage xmlns:fullexp="explorer" ID="FakeMinimizeButton" fullexp:HackSource="theme://CompositedWindow,SDB_TASKBACK,SDBTB_NORMAL" Width="27" Height="14" DockPanel.Dock="Right" Margin="0,1,0,0" fullexp:HackNineGrid="0,0,14,0"/>
              </DockPanel>
              <DockPanel Width="100%">
                <Canvas ID="CloseButton" Width="43" Height="14" DockPanel.Dock="Right" Margin="0,1,6,0" Background="#00112233"/>
                <Canvas ID="MaximizeButton" Width="25" Height="14" DockPanel.Dock="Right" Margin="0,1,0,0" Background="#00112233"/>
                <Canvas ID="MinimizeButton" Width="27" Height="14" DockPanel.Dock="Right" Margin="0,1,0,0" Background="#00112233"/>
              </DockPanel>
            </Canvas>
          </DockPanel>
        </DockPanel>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleFrameNonAero">
      <wl:UserWindowChrome Background="#80ffff00" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <DockPanel ID="Region_WindowTransform" Background="#80ffff00">
          <Canvas DockPanel.Dock="Top" ID="Region_Resize" Margin="6,6,6,0" Background="#00112233">
            <DockPanel Width="100%">
              <Canvas ID="CloseButton" Width="20" Height="20" Background="#FFFF0000" DockPanel.Dock="Right"/>
              <Canvas ID="MaximizeButton" Width="20" Height="20" Background="#FF00FF00" DockPanel.Dock="Right"/>
              <Canvas ID="MinimizeButton" Width="20" Height="20" Background="#FF0000FF" DockPanel.Dock="Right"/>
              <Text TextContent="*Bind(Path=Title)" DockPanel.Dock="Left"/>
            </DockPanel>
          </Canvas>
          <DockPanel DockPanel.Dock="Bottom" Margin="0,0,0,6">
            <Canvas DockPanel.Dock="Right" Margin="6,0,6,0">
              <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
            </Canvas>
          </DockPanel>
        </DockPanel>
      </Style.VisualTree>
    </Style>
  </FlowPanel.Resources>
</FlowPanel>

DWM can then be activated by invoking C:\build\filerepository\windowmanager_a2ea4897\windowmanager.exe a (with an arbitrary argument to allow it to run as a regular application rather than a service), or by dragging any file onto windowmanager.exe in Explorer.

The rewrite was originally intended to be run as a Windows service. Due to issues that prevent the service from accessing the theme data, a different DwmWin.xaml file that does not rely on the theming service is instead required:

DwmWin.xaml:

<?Mapping XmlNamespace="mscorlib_System" ClrNamespace="System" Assembly="mscorlib" ?>
<?Mapping XmlNamespace="windowmanager.WindowLayouts" ClrNamespace="WindowLayouts" Assembly="WindowManager" ?>
<FlowPanel xmlns="http://schemas.microsoft.com/2003/xaml/" xmlns:wl="windowmanager.WindowLayouts" xmlns:System="mscorlib_System" xmlns:def="Definition" Width="800" Height="600" Background="#80FF0000">
  <FlowPanel.Resources>
    <Style def:Name="NonClientAreaStyleNone">
      <wl:UserWindowChrome Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <Canvas ID="Region_WindowTransform">
          <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
        </Canvas>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleBorder">
      <wl:UserWindowChrome Background="#800000ff" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <Canvas ID="Region_WindowTransform" Background="#800000ff">
          <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
          <Text TextContent="*Bind(Path=Title)"/>
        </Canvas>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleFrame">
      <wl:UserWindowChrome Background="#8000ffff" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <DockPanel ID="Region_WindowTransform" Background="#8000ffff">
          <Canvas DockPanel.Dock="Top" ID="Region_Resize" Margin="6,6,6,0" Background="#00112233">
            <DockPanel Width="100%">
              <Canvas ID="CloseButton" Width="20" Height="20" Background="#FFFF0000" DockPanel.Dock="Right"/>
              <Canvas ID="MaximizeButton" Width="20" Height="20" Background="#FF00FF00" DockPanel.Dock="Right"/>
              <Canvas ID="MinimizeButton" Width="20" Height="20" Background="#FF0000FF" DockPanel.Dock="Right"/>
              <Text TextContent="*Bind(Path=Title)" DockPanel.Dock="Left"/>
            </DockPanel>
          </Canvas>
          <DockPanel DockPanel.Dock="Bottom" Margin="0,0,0,6">
            <Canvas DockPanel.Dock="Right" Margin="6,0,6,0">
              <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
            </Canvas>
          </DockPanel>
        </DockPanel>
      </Style.VisualTree>
    </Style>
    <Style def:Name="NonClientAreaStyleFrameNonAero">
      <wl:UserWindowChrome Background="#80ffff00" Width="*Bind(Path=Width)" Height="*Bind(Path=Height)"/>
      <Style.VisualTree>
        <DockPanel ID="Region_WindowTransform" Background="#80ffff00">
          <Canvas DockPanel.Dock="Top" ID="Region_Resize" Margin="6,6,6,0" Background="#00112233">
            <DockPanel Width="100%">
              <Canvas ID="CloseButton" Width="20" Height="20" Background="#FFFF0000" DockPanel.Dock="Right"/>
              <Canvas ID="MaximizeButton" Width="20" Height="20" Background="#FF00FF00" DockPanel.Dock="Right"/>
              <Canvas ID="MinimizeButton" Width="20" Height="20" Background="#FF0000FF" DockPanel.Dock="Right"/>
              <Text TextContent="*Bind(Path=Title)" DockPanel.Dock="Left"/>
            </DockPanel>
          </Canvas>
          <DockPanel DockPanel.Dock="Bottom" Margin="0,0,0,6">
            <Canvas DockPanel.Dock="Right" Margin="6,0,6,0">
              <Image ID="ClientArea" Source="*Bind(Path=ClientArea)"/>
            </Canvas>
          </DockPanel>
        </DockPanel>
      </Style.VisualTree>
    </Style>
  </FlowPanel.Resources>
</FlowPanel>

This produces a much simpler border design, with two variants: first is the yellow one, loaded when using the Slate, Luna or Windows Classic theme; second is the blue one, loaded by using the Jade theme. Former one is used with Slate theme regardless of which variant of DwmWin.xaml is used. This can be run as a service, and will work without utilizing an earlier or modified current version of the Jade theme. To enable running as a service, import the following entries into the registry:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DWM]
"Start"=dword:00000003
"Type"=dword:00000210
"ErrorControl"=dword:00000001
"ImagePath"="C:\\build\\filerepository\\windowmanager_a2ea4897\\windowmanager.exe"
"DisplayName"="Desktop Window Manager"
"Description"="Provides desktop window management and theming services."
"ObjectName"="LocalSystem"
"Group"="UIGroup"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DWM\Enum]
"0"="Root\\LEGACY_DWM\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001

DWM can then be started by invoking net start dwm or through the Services MMC snap-in. It is not recommended to set the startup type to Automatic as various desktop functionalities may break as a result of DWM starting prematurely.

Once started, desktop composition can be disabled by pressing Ctrl+⇧ Shift+F10, regardless of whether the Window Manager is running as an app or a service.

Aero in Windows Vista Beta 1-2 builds[edit | edit source]

This is a guide to enable Windows Aero (i.e. Desktop Window Manager) from Windows Vista build 5048 to build 5356 (builds 5308-5342 are excluded) on VMware and real hardware not supporting the Longhorn Display Driver Model. For VMware, it is recommended to use versions from 7 to 11 (for Workstation) or 3 to 7 (for Player), as newer versions starting from 12 have rendering problems in which the display would flicker and only part of active and in-active windows would render properly. This is likely due to changes in the display engine to support DirectX 10 and OpenGL 3.3. This problem also occurs on VMware 6.5 for unknown reasons.

Video Drivers[edit | edit source]

A compatible SVGA driver must be installed in order to enable 3D acceleration on VMware. Any SVGA driver from VMware version 6.5-11.x will work.

In the case of real hardware, a Windows XP driver compatible with the user's GPU must be installed.

Enabling Aero on builds 5048-5284[edit | edit source]

  1. After installing the drivers, open regedit.exe. Navigate to either HKEY_LOCAL_MACHINE\Software\Microsoft\DWM (In case of build 5048 to 5231.2) or HKEY_CURRENT_USER\Software\Microsoft\DWM (in case of build 5259 to 5284). If the DWM key is not present, create it.
  2. Create a DWORD key named EnableMachineCheck (build 5048 to 5231.2) or UseMachineCheck (build 5259 to 5284) and set its value to 0. Log off and back on and Aero should be automatically enabled.

Enabling Aero on builds 5355-5356[edit | edit source]

Aero on this build requires WDDM, and any attempts to use XPDM will not be succesful. As such, after installing RTM WDDM drivers, a black screen can be witnessed on log on. This is caused by the fact that builds in the 5308 to 5356 time range do not contain the proper code in the msvcrt.dll file to operate RTM WDDM drivers properly.

As such, the user has to replace the build's msvcrt.dll file and the spsys.dll driver (Replacing only the msvcrt.dll file doesn't work, due to BSODs caused by the previously mentioned driver) with 5378's.

After replacing the files, Aero should be enabled automatically on next boot. If not, open regedit.exe, navigate to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\DWM, create a DWORD named UseMachineCheck and set it to 0.

Optional Keys[edit | edit source]

The following values can be used to apply various effects to DWM:

Key Values
ForceSoftwareD3D

(builds 5048-5284 only)

1 - forces software rendering; recommended on VMware 6.5 and VMware 12.x and later to prevent screen flickering, though some minor graphical artifacts may occur.

0 - use hardware rendering

Glass

(builds 5098-5284 only)

1 - enable Glass frames

0 - disable Glass frames; disables blur effect on build 5219 onwards

Blur 1 - enable blur effect

0 - disable blur effect; required for builds 5098-5219 when software rendering is forced and Glass is enabled

BlurSigma

(builds 5212-5270 only)

decimal value between 1 and 30 - control the blur intensity

any other value - disables transparency and makes borders black

Animations 1 - enable Aero animation effects

0 - disable Aero animation effects

AnimationsShiftKey 1 - enable the use of the ⇧ Shift key to slow animations down

0 - disable this option

RenderClientAreaOnly 1 - render only the application's client area; the window borders and title bars won't be rendered, use with caution!

0 - render both the client and server (DWM) areas

Bugs[edit | edit source]

  • If software rendering is forced on both compiles of build 5231, DWM will crash, even with Blur or Glass set to 0.
  • If software rendering is forced on builds 5259-5284, the DWM borders will be invisible.
  • On any build before build 5259, Aero animations can lag. It is possible to work-around this bug by restarting the uxss.exe process.
  • Once the msvcrt.dll file is replaced on builds 5355-5356, Control Panel, navigating in Windows Explorer and Flip3D will not function.

Quirks[edit | edit source]

  • Due to these builds utilizing LDDM instead of WDDM used in newer builds, RTM Vista drivers do not work. Windows XP drivers are required to enable Aero on builds 5048-5284.
  • Aero is not known to work on builds 5098 and 5112 by default, as DWM in these builds requires LDDM drivers. Replacing the uxss.exe file in these builds with a patched version enables the use of DWM with XPDM drivers.
  • Aero is (as of 2024) not known to work on builds 5308.6 to 5342 outside of real hardware.
  • When Aero is enabled on build 5219, build 5231 and build 5231.2, the taskbar is always transparent, even if a window is maximized.
  • Flip3D is activated via the ⊞ Win+Space shortcut in build 5212, 5215 and 5219, rather than ⊞ Win+Tab in later builds.

Aero in Windows 8.x[edit | edit source]

Early builds of Windows 8 use the same Aero theme as Windows 7. It was later modified to have a bigger, centered title bar caption in build 7779, then a smaller close button on dialogs in build 7880 (which also no longer requires a WDDM driver to be installed, as the DWM can now run in software-rendering mode), and would remain identical until build 7985 with the introduction of several major design updates to the Aero theme that allow it to conform towards the Metro design language, such as sharp corners and flat surfaces in certain window elements.

In Windows 8 build 8102.101, it is possible to enable DWM glass effects in the Aero Lite theme (referred to as Windows Basic) by running the WindowsAnytimeUpgradeResults.exe executable.

Although Windows 8 build 8432 (fbl_loc) and later builds (including the RTM and Windows 8.1) disabled the functionalities required to produce glass effects, it is possible to re-enable them through the use of a DWM bug, albeit with the possibility of graphical artifacts being presented within the DWM renderer. There are two methods to forcibly enable glass effects in Windows 8:

  • Method 1 (with Windows Basic theme): Right click the desktop and open up Personalization. Select any of the high contrast themes to apply it. Once applied, click on Window color to open it up. Leave the page open and minimize it. Open a separate personalization window and apply the previous theme before utilizing high contrast and close out of the newly opened personalization window. Switch over to the other personalization window and save changes to use the high contrast colors. To disable glass effects, switch to a different theme or modify the current desktop background or window colors.[b]
  • Method 2 (with default theme):
  1. Start the Registry Editor.
  2. Navigate to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM and set the value of ColorizationGlassAttribute to 2.
  3. End the Desktop Window Manager process.

Bugs and quirks[edit | edit source]

  • In Windows 8 build 8102.101, the lower half of the window background of some applications that take advantage of the full DWM client area (e.g. Desktop Gadget Gallery, Windows Mobility Center or Firefox) do not render correctly.
  • In Windows 8 build 8432 (fbl_loc) and later, if the "glass" effects were enabled using a bug described above, a broken "glass" effect will be enabled that results in the border to draw contents of menu, icons, or other window above it to itself. Moving or resizing the window will also leave the trails of the title bar and cursor. Maximizing the windows will temporarily clear out those.

Gallery[edit | edit source]

Windows Longhorn / Windows Vista[edit | edit source]

Pre-reset[edit | edit source]

Post-reset[edit | edit source]

Windows 7[edit | edit source]

Windows 8[edit | edit source]

Windows 10 and 11[edit | edit source]

Notes[edit | edit source]

  1. Most of the steps in this guide do not work on 64-bit builds since they only offer basic DWM functionality. Additionally, this guide does not contain steps for patching system files such as Microsoft.Windows.WCPClient.dll to enable other Aero UI/features.
  2. This workaround also works on the original release of Windows 10 as well. The same bug can also be used to enable transparency when using the Aero Lite theme on builds 8250 through 8422 (fbl_woa), albeit with full colorization and increased stability.