Welcome to MSDN Blogs Sign in | Join | Help

Mixed-mode processes and IPC

Mixed-mode processes, because of their ability to call both Win32 subystem and subsystem libraries, can use both posix and windows InterProcessCommunication mechanisms.

 

This ability makes mixed-mode processes far more capable in terms of IPC abilities - they can communicate with

pure SUA (posix) processes,

Windows processes and

other mixed-mode processes.

 

Mixed mode processes can use any of the below posix IPC mechanisms

 

-          Process pipes

-          Named pipes

-          Message queues

-          Sockets

-          Memory-mapped files

-          Shared memory

Or any of the below Win32 IPC mechanisms

 

-          Process pipes *  ( this is implemented in std c library – so cannot be used if the application is linking to libc)

-          Named pipes

-          Message queues

-          Sockets

-          Memory-mapped files

-          Shared memory

 

Though a mixed-mode process can use a mix of these mechanisms, one should be careful to make sure that both ends of the IPC are compatible with each other– for example, while one end of an IPC connection can be windows sockets and the other end can be SUA sockets, other IPC mechanisms don’t give you this liberty. For example, both ends of shared memory should either be SUA shared memory calls or windows shared memory calls.

Published Thursday, February 15, 2007 3:54 PM by shankul
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

Thursday, February 22, 2007 8:39 PM by shamit

# re: Mixed-mode processes and IPC

do you want to increase the scope to Windows & UNIX Subsystem/app communication?

You can add more info as following -

      Shared memory - SUA uses mmap, win32 uses CreateFileMapping

The SUA, and Win32 interfaces all provide access to functionality in the single Windows operating system kernel that supports them all. Any "kernel" functions, then, should be easily shared: files, process invocation, networking, and memory fall into this category. The SUA environment takes care of connecting Unix and Windows pipes together to allow data to be shared that way as well.

Wednesday, February 28, 2007 4:29 AM by jerker_back

# re: Mixed-mode processes and IPC

Well, here it is at last!

Someone explaining the features of SUA and show how to use them - well done! Give us more!

I just found your blog - maybe you should tell the "/tools" community about it? I'm sure a lot of people would be pleased to read your articles (that is: www.interix.com).

Currently I'm struggling with x64 SUA (Vista), what about some words about that? Ex: What long types are actually 64bit and what are 32bits according to the Interix LP64 model? Are the functions in psxdll LP64 or P64? What is l2ll and how does it work? How to compile x64 SUA in Visual Studio?

Thanks Erik, Sweden

Wednesday, February 28, 2007 4:37 AM by shankul

# re: Mixed-mode processes and IPC

Thanks for the feedback Erik. Sure, i have a bunch of topics in mind and will add teh 64 bit topic to that.

in the mean time, if you have any burning question that is impeding your work, email me. I'll clarify as much i can.

Saturday, March 17, 2007 4:01 PM by anonymous

# re: Mixed-mode processes and IPC

Please, I request MS to reconsider whether they dont want to include SFU (rather SUA) in Vista Business. Otherwise, I have no incentive to upgrade from my XP Pro to Vista Business. Technically, even XP MCE can have SFU. Hoping something will change by Vista SP1.

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker