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.