Avalon and Win32


Dan asks:



Can you please explain the relationship between Win32 subsystem and WinFX. In PDC it was told thar WinFx replaces Win32. Now it looks like USER and Win32K are still in use


Good question.  WinFX is where all the innovation is, both in the Longhorn/Avalon V1 timeframe, and in releases beyond that.  But at the same time, we can’t break existing Win32 applications.  So in the Longhorn timeframe, the best way to achieve that was to build Avalon on top of (a subset of) Win32k.sys. 


At the end of the day, our goal is not about creating Avalon or replacing Win32k.sys, it’s about getting innovation into the Windows platform.  If we could do that by adding features to Win32k.sys, we would.  But the compatibility burden for Win32k.sys is incredibly high, so there’s no way we can innovate there in anything like the way we can with Avalon.  And in Longhorn, we found we could bring plenty of innovation without completely replacing Win32k.sys.  Eventually, in order to keep innovating, we’ll have to replace Win32k.sys completely — again, while maintaining compatibility with existing win32 apps!  I’m not exactly sure what that will look like — perhaps we create a “son of Win32k.sys” that both Avalon and Win32k.sys build off of — but in any case, that comes after Longhorn.  (Oops, I mean Windows Vista!)


Comments (3)

  1. IMesh says:

    Glad to hear that my win32 applications will still work, I was hearing rumors that Longhorn would break all your old applications (not that I believed it, Microsoft isn’t dumb)

    "Longhorn. (Oops, I mean Windows Vista!)"

    I don’t think I will ever be able to stop calling Longhorn.

  2. Judah says:

    Nick, I have read previously that WinFX API can make direct system calls, bypassing Win32 if/when necessary. Is that still true? Or does everything go through the Win32 API?

  3. JohnK says:

    Nick, we’re looking at re-writing our apps on WinFX but trying to justify the extra work. Is there someplace we can look to get a concise view of what you get with WinFX that you won’t get with Win32?