USER & GDI Compat, part 5 — Miscellaneous

The fifth and final installment…

NetDDE — For security reasons/reduction of attack area, Windows Vista does not support NetDDE.  (NetDDE was disabled by default on Windows XP SP 2 and Windows Server 2003.)  Regular DDE is still supported.  NetDDE is a technology that allows applications that use the DDE transport to transparently exchange data over a network, see;en-us;125703 for details. 

AppInit_DLLs — For security reasons, Windows Vista does not support AppInit_DLLs, which is a registry key that specified a DLL to load into every process (a popular feature with spyware writers).  The complete key is HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs.  Instead, there’s a new key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs, which can only be set by administrator-level applications.  (Just because the user is an administrator doesn’t mean your program runs with administrator rights, see security section for details).

JPEG wallpaper — Windows Vista supports the JPEG (*.jpg) file format for desktop wallpaper.  We are interested in learning of cases where JPEG wallpaper stretches differently from BMP wallpaper, or behaves differently over terminal server.

PNG icons — The icon file format (*.ico) now supports PNG images in addition to the older BMP-style icons; many Windows Vista icons use the PNG variant.  Consider testing tools that view or edit icons files.

Comments (7)

  1. Anonymous says:

    Hmm, AppInit_DLLs is in the LOCAL_MACHINE tree. How would a non-admin app be able to change it before?

  2. ChrisR says:

    I’m confused by the JPEG wallpaper item.  Quite a few of the default wallpapers in XP are JPEGs, and I have a JEPG photo as my wallpaper.

    I hope you keep posting all this useful information, this blog has been very interesting (I only found it a few weeks ago).

  3. nkramer says:

    Chris — Sorry, that wasn’t real clear, was it.  On Windows XP, USER doesn’t support jpeg wallpaper.  Rather, when you set the wallpaper, if you specify a .jpg, the Windows Shell translates it into a .bmp which USER can understand.  On Windows Vista, USER understands .jpg, and because .jpg can be considerably smaller than the equivalent .bmp, it can increase login time significantly.  

    Now, for architectural purity reasons, the implementation changes the timing of when the background is loaded, so we’ve seen bugs like the background not getting correctly rotated on a tablet (because the rotation happened before the .jpg was even loaded).  We’ve fixed everything we know about, but want to make sure there aren’t more.

  4. ChrisR says:

    Ahh ok, thanks Nick, that makes sense now.  Pretty interesting stuff.

  5. This content will make it into the master compatibility document in the next month or so, but in the…

  6. David Hopwood says:

    What’s the motivation for the AppInit_DLLs feature, anyway? Since you’re prepared to break compatibility with anything that was using it before by using a new registry key, it can’t be that important.

    Re: NetDDE — I’m glad to see you’re removing stuff for security reasons. There’s still a *long* way to go in that direction.

  7. I don’t know why it’s there but it doesn’t work.