winsock , IOCP model , PER_IO_DATA 有关问题

winsock , IOCP model , PER_IO_DATA 问题
1   资料1
http://blog.****.net/sodme/archive/2005/07/17/427405.aspx
  {{
typedef   struct   PER_IO_DATA
  {
    OVERLAPPED   ovl;
    WSABUF         buf;
    char     RecvDataBuf[   MAX_BUFFER_SIZE   ];       //接收缓冲区
    char     SendDataBuf[   MAX_BUFFER_SIZE   ];       //发送缓冲区
    OpType   opType;     //操作类型:发送、接收或关闭等
  }

}}


2   资料   2  
  《Network   Programming   for   Microsoft   Windows     2nd   edition.CHM》
typedef   struct
{
        OVERLAPPED   Overlapped;
        char               Buffer[DATA_BUFSIZE];
        int       BufferLen;
        int                 OperationType;
}   PER_IO_DATA;


  问题:

    上面资料的   PER_IO_DATA   结构定义是不一样的,  
 
    系统   怎么知道   我们定义的   PER_IO_DATA   结构   是怎样的呢   ?
   
    比如   调用   WSARecv()   系统如何知道   把数据复制到哪里?




------解决方案--------------------
OVERLAPPED Overlapped;系统只负责这个成员的 操作