Socket I/O Completion Ports
Hi,
I'm developing an online game server and intend to use I/O completion ports to manage network communication, as they seem to provide the best performance.
Due to the server's use of unbuffered sockets, I'm looking for a means to be able to distinguish asynchronous notifications for receives/sends, as this is needed to manage various stacks internally.
My initial idea was to use one of the WSAOVERLAPPED struct's members to flag whether the operation was send/receive, but figured there must be a more efficent means. And more-so, the documentation about what fields of WSAOVERLAPPED are available for user use is a bit vague, what fields are actually free to use?
Just to ensure I understand this, every asynchronous call (WSASend/Recv) must be provided with a unique WSAOVERLAPPED struct, which a pointer to is later given when an IO completion notification is given. (GetQueuedCompletionStatus(...)).
Thanks,
Matt.

