Robert Köpferl wrote:
Ey, rather interesting all this. Leads directly to questions: Why is it needed to maintain compatibility with NT. Either API and Semantics are used just and only in ROS. OK, some never seen sub systems exist, but will they ever run on ROS or wil new ROS-ss ever run on NT?
1) The SRM, in the executive, uses LPC to talk to the LSA, which runs in user mode. Therefore the security model in NT is LPC dependent. You could find an alternative IPC mechanism, but you won't bet some subtle behaviour does not depend on LPC.
2) RPC is totally based on LPC, if the remote process is located on the same node of the calling process. And OLE/COM is based on RPC. Again some subtle behaviours may depend on LPC.
3) A side effect of having the LPC APIs and semantics compatible with NT's is that subsystems developed for ROS will run in Windows NT, Windows 2000, Windows XP, and in Windows Server 2003.
4) Another advantage is that you can pick up the smss.exe from an XP box and try running it under ROS. Or the csrss.exe, which is the Win32 emulation process: there are some subtle details of the Win32 APIs that can not be explained it you don't go down to the LPC level. As LPC is still not fully documented, it may help understanding its internals, just like running real Windows programs helps Wine coders understand where their Win32 APIs implementation will need tuning.
5) Having a compatible LPC implementation could even help MS (OK, stop bragging!)
Emanuele