Здравствуйте, Temnikov, Вы писали:
T>Преамбула:
T>ПО переопределяет виндовый шелл на себя.
T>При загрузке машины грузится сначала стандартный диалог входа в винду, после входа запускается софт.
T>В софте после внутренней авторизации начинается инициализация работы с оборудованием.
T>Собственно проблема:
T>Периодически, не всегда (~30-40%+- не мерил) происходит ошибка открытия СОМ порта.
T>Открывается так:
T>T> m_hPortHandle = CreateFile(szBuff,GENERIC_READ | GENERIC_WRITE,0,NULL,
T> OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
T>
T>Результат работы CreateFile INVALID_HANDLE_VALUE. GetLastError возвращает "доступ запрещен".
T>СОМ порты пробовали и на материнке, и PCI. Не влияет.
T>Перезапуск программы почти всегда помогает, но бывает что нет.
T>Под другими ОС такого не наблюдалось.
T>Куда копать?
Ошибка, скорее всего, возникает из-за того, что порт уже кто-то открыл до вас.
Сервис, например, опрашивает порты, свое устройство ищет или что-то в этом роде.
Нужно найти что-нибудь аналогичное
Portmon'у для x64 и посмотреть.