请问OVERLAPPED  structure 是什么,如何用,什么时候用?

解决方案 »

  1.   

    用于 ReadFile / WriteFile / WaitCommEvent ,相应的句柄必须用 FILE_FLAG_OVERLAPPED 标志创建把阻塞的调用变为同步的,这些函数在 OVERLAPPED 状态下返回 FALSE, GetLastError() == ERROR_IO_PENDING,判断调用何时执行完可以调用 GetOverlappedResult , 或者等待 OVERLAPPED::hEvent;
      

  2.   

    CREATEFILE的时候指定FLAG为FILE_FLAG_OVERLAPPED
    然后可以对此文件(不一定是文件)进行异步IO操作,每一个IO(READFILE,WRITEFILE)操作可以设定一个EVENT(手动)对象.可以使用WAITFORMUTLIOBJECTS或类似等待函数来等待这些操作的完成.这些IO操作有可能并不一定采用异步方式.