[ros-dev] WIN32K: LPC use

Emanuele Aliberti ea at iol.it
Wed Jan 19 23:00:43 CET 2005

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 


More information about the Ros-dev mailing list