Работа с виртуальным USB портом принтера и сканера

Тема в разделе "WASM.WIN32", создана пользователем tumanovalex, 23 июн 2009.

  1. tumanovalex

    tumanovalex New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2004
    Сообщения:
    8
    Адрес:
    Russia
    Мне хотелось бы поработать с виртуальным портом USB принтера через CreateFile, ReadFile, WriteFile (для передачи данных в принтер, давать команду на печать, очищать буфер принтера, получать его статус, подавать команды Printer Page Description and Markup Languages и др.). У меня виртуальный порт принтера HP LaserJet 1020 в системе обозначен как USB001. Я пробовал использовать название порта в CreateFile, ничего не получилось. Подскажите, пожалуйста, как работать с виртуальным портом принтера. В интернете ничего не нашел, только по поводу виртуальных COM портов. Потом хотелось бы разобраться с виртуальным портом сканера.
     
  2. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    А разница... виртуальный он или нет? Один фиг для системы это ДЕВАЙС! Так что, скорее всего, не правильно открываешь!
     
  3. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Хотя, сомневаюсь, что ЮСБ доступен именно через это имя, если вообще доступен, для открытия через CreateFile
     
  4. tumanovalex

    tumanovalex New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2004
    Сообщения:
    8
    Адрес:
    Russia
    Хотелось бы все-таки узнать, как "правильно" открывать виртуальный порт USB-принтера. Я пробовал как \\\\.\\USB001, и менял количество обратных слешей, ничего не получается. Видимо, обращение к виртуальному порту осуществляется как-то по-другому.
     
  5. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Обращатся можно к ДЕВАЙСУ а не к порту! к порту можно из ринг0 посредствам in/out!
    А через CreateFile можно только ДЕВАЙС открыть! Потому ищи имя девайса, которое висит на этом порту!
     
  6. tumanovalex

    tumanovalex New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2004
    Сообщения:
    8
    Адрес:
    Russia
    Знать бы, как его найти. Принтер в панели управления имеет имя HP Laser Jet 1020, по этому имени ничего открыть не удается.
     
  7. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    В диспетчере уст-тв у каждого девайса в Properties->Details есть св-во Physical Device Object Name. Попробуй его.
     
  8. tumanovalex

    tumanovalex New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2004
    Сообщения:
    8
    Адрес:
    Russia
    Единственное что я нашел - это при включении принтера в Диспетчере устройств в разделе Контроллеры USB появляется Поддержка USB принтера. Там в сведениях есть различные параметры, многие из них (различные коды) я попробовал, ничего не получилось.
     
  9. ams007

    ams007 New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2007
    Сообщения:
    86
    обмен urb-пакетами. В них пакуешь scsi-пакеты. как этим пользоваться - от части описано в мсдн и ддк. и если не путаю - дрова усб шины не поддерживают рид врайт - т.к. они не знают кому там рид, а кому врайт - это уже функционал драйвера конкретного устройства. можно почитать Агуров Интерфейс усб - тоже есть неточности, но сойдет для общего развития.