求高人指点一下!怎么理解这里的return(dwbytesRead),返回已经读取的数据长度有什么作用

求高人指点一下!如何理解这里的return(dwbytesRead),返回已经读取的数据长度有什么作用!
DWORD APIENTRY IOP_Read(int port, LPSTR buffer, int count) 
{
  BOOL fReadStat ;
  DWORD dwError;
  DWORD dwBytesRead ;  

  fReadStat = ReadFile( COMDEV[port], buffer, count,
&dwBytesRead, &READ_OS ) ;
  if (!fReadStat)
  {
  if (GetLastError() == ERROR_IO_PENDING)
  {
  while(!GetOverlappedResult( COMDEV[port],
  &READ_OS, &dwBytesRead, TRUE ))
  {
  dwError = GetLastError() ;
  if (dwError == ERROR_IO_INCOMPLETE)
  return (dwBytesRead) ;
  else
  return (FAIL) ;  
  }
  }
  else
  return (FAIL) ;
  }  
  return (dwBytesRead) ;
}

------解决方案--------------------
作用就是返回实际读取的数据字节数,因为“文件”操作中经常出现实际读取的字节数与想读取的字节数不同的情况。
------解决方案--------------------
返回实际读到的字节数。在串口通信中,并非所有操作都能成功,你可能想读取100个字节,但是,如果串口线断开或者其他原因,你实际只读到10个字节,因此需要知道实际读取的字节数,在你的程序中进行判断,以确定操作是否成功。