Ситуация следующая, под win2k имеем стабильный вис на ReadFile в таком коде:
DWORD CRS232Port::Read(void* pData, DWORD dwCount) const
{
ASSERT(IsOpen());
DWORD ret = 0;
DWORD dwBytesRead = 0;
ReadFile(m_hPort, pData, dwCount, &dwBytesRead, NULL);
return dwBytesRead;
}
исспользуется это примерно так:
...some looop...
DWORD dwRead = Read(static_cast<BYTE*>(pData) + n, sizeof(BYTE));
...end loop....
Происходит это тогда когда к порту ничего не подключено. В win2k3 при этом все нормально читается(в 9 раз из 10) и возвращается пустой буффер. Я уже незнаю чего и думать, не в отдельный же поток это вставлять.
Извечный вопрос, кто виноват и что делать.

... << RSDN@Home 1.1.3 stable >>