You can use IOCP on pipes. ReadFile, WriteFile, TransactNamedPipe, and ConnectNamedPipe API's can be used with pipe handles.
ReadFileEx and WriteFileEx can also be used with completion routines, (don't go near the hEvent synchro design), for pipe I/O.
See MSDN for fuller details.