Member 13947289 Ответов: 1

Как привязать мою ручку к трубе с помощью usb-устройства ?


Привет Всем
Я использую Create file ,Writefile,Readfile для связи с usb-устройством,после успешного использования Createfile Writefile нуждается в канале для устройства .Я попробовал Createpipe() создать anynoumous pipe и связал его дескриптор с дескриптором Createfile с помощью refrence, но это не сработало.Итак, как привязать мой дескриптор Createfile к этому каналу или как использовать Createnamedpipe для решения моей проблемы?
P. s Как сделать правильное имя канала из usbpath, которое у меня есть ?

Что я уже пробовал:

Hanle *g,*f;
Ручка h;
h=Createfile(...)
g=&h;
Createpipe(f,g,..)

Richard MacCutchan

Зачем для этого нужна труба, когда у вас уже есть прямая ручка к устройству?

Member 13947289

потому что, когда я использую функция WriteFile непосредственно после функции CreateFile у меня ошибка E0001009 USBIO_ERR_NOT_BOUND

Richard MacCutchan

Почему вы считаете, что использование трубы исправит это?

1 Ответов

Рейтинг:
0

Jochen Arndt

Я знаю три варианта связи с USB-устройствами в Windows:

  • Использование драйвера конкретного устройства с SDK, предоставленным производителем устройства
  • С помощью определенного драйвера устройства используйте информацию с устройств
  • Использование независимого от устройства API или библиотеки, например Восстановить или libusb

В качестве отправной точки вы можете прочитать Справочник по программированию настольных приложений USB (драйверы Windows)[^].

Для Восстановить примеры см. Как получить доступ к USB-устройству с помощью функций WinUSB | Microsoft Docs[^] и Написать Windows приложение для настольных компьютеров на основе шаблона восстановить | Майкрософт документы[^].


Member 13947289

Спасибо Йохен
Мое usb-устройство уже имеет драйвер и протокол коммутации от оригинальной компании, и этот протокол говорит, что я могу использовать функцию Windows Createfile...с водителем для доступа к устройству
другой вариант для меня-использовать libusb (потому что winusb-это сложно )
Я попробую этот путь.

Jochen Arndt

Если вы посмотрите на пример кода WinUSB, то заметите, что CreateFile() используется слишком изначально.

Вы когда-нибудь пользовались libusb? Это низкий уровень и жесткий, а также :)

Member 13947289

Я сейчас об этом беспокоюсь