Работа с COM-портом. Получение состояния отдельных пинов разъемов в XP

Тема в разделе "WASM.BEGINNERS", создана пользователем Xerx, 24 янв 2007.

  1. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Собственно subj. Подскажите в какую сторону плыть. Как я понял, огромное число примеров в инете ориентированы на использование CreateFile('COM1') и т.д. с работой побайтно через ReadFile/WriteFile. Но в данном случае, мне нужно получать не данные, а состояние пинов: TxD, RxD, RTS, CTS, DTR, DSR, RI, DCD, GND для 9-пинного разъема.

    В DOS и Win9x работа шла через порты IO in/out. А как поступить в XP? Есть ли способ обойтись БЕЗ собственного драйвера (гложат сильные сомнения)? Если нет, то стоит ли опираться при работе на пример "3.3 Драйвер режима ядра beeper" из KmdTut или есть другие варианты?

    Заранее спасибо. Если есть какие-либо примеры или документация, то можно скинуть на ящик XerxWork@narod.ru :)
     
  2. OioVologda

    OioVologda New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    91
    По моему, придется все таки использовать драйвер, либо какой нибудь полулегальный метод получения привилегий ринг 0. Где то видел статью (кажется в секретах вынь32), в которой приводился пример работы в нулевом кольце без драйвера. Там люди изменяли карту ввода - вывода процесса, так что можно было работать напрямую с портами in/out (в данном случае - com).
     
  3. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    >OioVologda
    Хорошо, я посмотрю в Секретах.

    Но по прежнему жду еще каких-либо предложений для получения более объективной оценки.
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Можно не писать свой драйвер, а воспользоваться драйвером, который даёт доступ к портам из обычного приложения. giveio
     
  5. OioVologda

    OioVologda New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    91
    Вот еще, чужие дрова юзать, типо своих не напишем. Книжки надо читать. Там, карту ввода-вывода поменять, что сторонние дрова и делают. Без драйвера несколько сложнее, так как приходится делать много грязной работы по инициализации необходимых для работы параметров, например адресов библиотек api.
     
  6. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Все. Разобрался. Переписал GiveIO на ASM :) Все работает. Всем огромное спасибо! Тему считаю закрытой.