Проблема в следующем:
Моя прога работает под W98 и NT4 без проблем. Опрашивает приборы через COM-порт либо напрямую либо через модемы. Связь устанавливается с помощью TAPI. После установления связи получаю дескриптор файла для работы с COM-портом
При работе в W2000 дескриптор получаю нормально.
При попытке установить сигнал RTS вызов проходит не удачно
EscapeCommFunction( hFile, SETRTS )
и через GetLastError получаю описание ошибки:
"Ошибка выполнения расширенной функции порта. Параметр задан неверно. (Ошибка: 87)."
При работе же через модем происходит что-то не понятное.
После отправки запроса через модем визуально наблюдаю на индикации модема прохождение сигналов:
RTS
TXD — передан последний символ
и через некоторое время
RXD — получен символ ответа
Прога ждет реакции СОМ-порта
WaitCommEvent(hFile, FEventMask, @Overlapped)
TXD — обнаруживается, а RXD — нет.
При отправке следующего запроса
На индикации одновременно TXD и RXD, а еще чуть позже еще RXD.
и прога через WaitCommEvent(hFile, FEventMask, @Overlapped) ловит наконец-то
часть ответа. Но эта часть относится к первому запросу. И т.д.
Причем на модеме сигнал RTS не горит (а в 98 — горит).
Такое впечатление, что обмен c портом идет только когда RTS горит.