I have IOCP application that stores a 64kb buffer per socket context. It uses lot of RAM, while handling thousands of sockets. Instead of this i want to switch to model where I have a 64kb buffer per iocp-thread context (like i can do it in epoll and kqueue). For this i need my completion port be able to receive notifications without bytes copying to the provided WSABUF and after notification simply call async WSARecvFrom(without providing overlapped structure,i'm using udp for tests) until i receive WSAEWOULDBLOCK. I've read that following technique can be achieved if i provide empty WSABUF (buf = NULL, len =0) for the WSARecvFrom call with overlapped structure. But it doesn't work: IOCP never "wakes up" as buffer is too small.
Are there other ways i can make such scenario possible?