Nitay,
It sounds like you're on the right track with registering your own I/O callbacks. The callbacks were designed to allow applications to control how they read/write data to/from wolfSSL. For your Recv callback, you'll just need to pass the encrypted data buffer received over your transport medium to wolfSSL through the provided buffer, "buf", in your callback. For an example, you can reference the EmbedReceive() function in <wolfssl_root>/src/io.c.
I'm not familiar with IOCP myself, so if I'm misunderstanding what you are trying to do, please correct me.
Best Regards,
Chris