<p>Is it possible to use overlapped I/O with an anonymous pipe? CreatePipe() does not have any way of specifying FILE_FLAG_OVERLAPPED, so I assume ReadFile() will block, even if I supply an OVERLAPPED-structure. </p>

No. As explained
here
, anonymous pipes do not support asynchronous I/O. You need to use a named pipe. There's example code to do this on MSDN
here
and
here
.