MFC 异步通信失误 请大神指点

MFC 异步通信出错 请大神指点

1.// 打开设备
void CUSBDlg::OnOpenDevice()
{
 
hHandle=CreateFile( //打开 启动设备
strDevicePath,
GENERIC_READ | GENERIC_WRITE, 
FILE_SHARE_READ | FILE_SHARE_WRITE,
(LPSECURITY_ATTRIBUTES)NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,// 设置异步通信模式
NULL );

 
}
2. 
void CUSBDlg::OnWriteData()
{
//注意:  启用最后 1 个接口发送 读取数据
if(hHandle==INVALID_HANDLE_VALUE)
{
MessageBox(_T("设备接口没有打开"));
return ;
}

int x=0,y=0;

BYTE  WriteBuffer[64]={0};
BYTE  ReadBuffer[64]={0};

    WriteBuffer[0]=0x04;
    WriteBuffer[1]=0x50;
DWORD DataByteCount=0; //实际读写的字节数
DWORD i;

BOOL  bR;

OVERLAPPED  nOverlapped;
HANDLE ReportEvent;

int err;
  
ReportEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
nOverlapped.Offset = 0;
nOverlapped.OffsetHigh = 0;
nOverlapped.hEvent = ReportEvent;
 
bR=WriteFile(hHandle,WriteBuffer,64,&DataByteCount,(LPOVERLAPPED)&nOverlapped);

err=GetLastError(); 返回值为997, 表示IO操作正在进行
//为什么这里会发生这种错误,不明白到底是什么原因造成 IO操作正在进行,请各位大神,指点下

     WaitForSingleObject(ReportEvent, 100);  // 等待 变为有信号
     
 ResetEvent(ReportEvent); // 设置其无信号

   CloseHandle(ReportEvent);
}
异步通信  MFC 

------解决方案--------------------
WriteFile函数异步模式调用,则立即返回,不需要等待函数发送数据结束,所以就是表示正在进行IO操作了。