采用异步I/O,readfile()从串口读取数据不全?解决方法

采用异步I/O,readfile()从串口读取数据不全?
COMMTIMEOUTS TimeOuts;
  memset(&TimeOuts,0,sizeof(TimeOuts));
  TimeOuts.ReadIntervalTimeout = MAXDWORD;
  TimeOuts.ReadTotalTimeoutConstant = 10;
  TimeOuts.ReadTotalTimeoutMultiplier = 10;
  TimeOuts.WriteTotalTimeoutConstant = 2000;
  TimeOuts.WriteTotalTimeoutMultiplier = 50;

  ReadFile(hCom,pszRecv,1024,&ReadBytes,&ReadOver)
发现只读取了8个字节的数据(ReadBytes的值是8),本来要读取25个字节的数据。不知道哪里出了问题?

------解决方案--------------------
// 异步模式,一次读操作完成后,还要去判断输入缓冲区是否有数据。