Как открыть COM порт из драйвера

Тема в разделе "WASM.WIN32", создана пользователем Ant123, 1 мар 2005.

  1. Ant123

    Ant123 New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2005
    Сообщения:
    5
    Адрес:
    Russia
    Добрый Вечер!

    Подскажите пожалуйста, как открыть из своего драйвера стандартный драйвер COM-порта (я пробую это сделать с помощью ZwCreateFile). Вчастности, меня интерисует вопрос: что передавать в качестве названия файла (ObjectName). Я пробовал и "COM1", и "\\Device\\serial0" и д.п.

    не открывает =0(
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    <font color="gray][ Ant123</font><!--color--><font color="gray]: Подскажите пожалуйста, как открыть из своего драйвера стандартный драйвер COM-порта (я пробую это сделать с помощью ZwCreateFile). ]</font><!--color-->



    В общем случае, лучше для этих целей юзать IoGetDeviceObjectPointer.





    <font color="gray][ Ant123</font><!--color--><font color="gray]: Вчастности, меня интерисует вопрос: что передавать в качестве названия файла ]</font><!--color-->



    Имя объекта "устройство": "\Device\Xxx", "\FileSystem\Xxx"... или имя символьной ссылки на девайс или имя символьной ссылки на интерфейс девайса.





    <font color="gray][ Ant123</font><!--color--><font color="gray]: не открывает =0( ]</font><!--color-->



    И не откроет. DDK: "A COM port is an exclusive device; only one file can be open on a port at any given time."



    ZwCreateFile и IoGetDeviceObjectPointer шлет IRP_MJ_CREATE, а так как этот объект эксклюзивный, то драйвер возвращает STATUS_ACCESS_DENIED.
     
  3. Alter

    Alter New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2005
    Сообщения:
    9
    Адрес:
    Kiev, Ukraine
    "\\Device\\serial0" по сути правильно.

    А вот дальше я бы поинтересовался NTSTATUS'ом и попросил продемонстрировать код, использующий ZwCreateFile вместе с InitializeObjectAttributes.

    Кроме того, стоит убедиться, что serial.sys уже загружен.