串口通信打不开连接在USB HUB上的串口

CreateFile(_szCommStr, GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | _dwIOMode,NULL),倒数第二个参数,_dwIOMode = FILE_FLAG_OVERLAPPED
CreateFile(_szCommStr, GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL)
这样写的话,就打不开HUB上的串口,如果变成FILE_FLAG_OVERLAPPED | FILE_FLAG_OVERLAPPED,就可以打开串口,为什么呢?FILE_FLAG_OVERLAPPED不就等于FILE_FLAG_OVERLAPPED|FILE_FLAG_OVERLAPPED吗?

有大神知道吗

仅供参考:

    TCHAR *szPort = new TCHAR[50];
    HANDLE              m_hComm;
    _stprintf_s(szPort,50, _T("\\\\.\\COM%d"), portnr);

    // get a handle to the port
    m_hComm = CreateFile(szPort,                        // communication port string (COMX)
                         GENERIC_READ | GENERIC_WRITE,  // read/write types
                         0,                             // comm devices must be opened with exclusive access
                         NULL,                          // no security attributes
                         OPEN_EXISTING,                 // comm devices must use OPEN_EXISTING
                         FILE_FLAG_OVERLAPPED,          // Async I/O
                         0);                            // template must be 0 for comm devices

    if (m_hComm == INVALID_HANDLE_VALUE)