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!)