In this section, we'll discuss Windows' shared memory facilities. Shared memory is memory that is visible to multiple processes or that is present in the virtual address space of multiple processes. It's the tool of choice when you need to rapidly exchange data between multiple processes. Because data is exchanged via shared virtual memory pages, each process that accesses it must already know how to interpret it and how to work with it. Unlike data that comes in over a TCP/IP socket or, say, through a Windows message, data accessed via shared memory consists of committed pages within a process's address space. The process must know something about what these pages should contain in order to make use of their data.