Что нового

Как управлять USB утройством (control transfer) ?

Sln

Знающий
Сообщения
49
Репутация
7
Через PIPE00/01 общаться умею (W/R) с помощью _WinAPI_CreateFileEx

Не получается SETUP/CONTROL пакеты в USB порт слать..

здесь был: msdn.microsoft.com/en-us/library/windows/hardware/ff539261%28v=vs.85%29.aspx


Спс!
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Prog сказал(а):
Что уже сделали?
Пожелаю удачи в работе с ядром из юзермода, она понадобится... ;) :smile:

блин, как стрёмно :-X

хм, декомпилил пару сишных программ умеющих и не требующих (ни админ, ни доп библ)... по коду, всё как по методичке msdn'a... замапить на autoit бы...
 

Prog

Продвинутый
Сообщения
640
Репутация
80
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Prog сказал(а):
декомпилил пару сишных программ умеющих и не требующих (ни админ, ни доп библ)
Какие DLL или SYS они используют?
setupapi, kernel32, user32 и advapi32

Prog сказал(а):
по коду, всё как по методичке msdn'a... замапить на autoit бы...
Попробуйте. Может получится.
попробовал, создал топик :reading_book:
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Sln

Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Администратор.
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Medic84 сказал(а):
За нарушение общих правил
а еще внешняя ссылка :-[


org.downloadcenter.samsung.com/downloadfile/ContentsFile.aspx?CDSite=UNI_RU&CttFileID=5727970&CDCttType=FM&ModelType=N&ModelName=ML-2160&VPath=FM/201405/20140521151757014/ML216x_series_V1.xx.02.01.zip

распаковать, запустить, смотреть api- монитором при подключенном устройстве...
 

Prog

Продвинутый
Сообщения
640
Репутация
80
Sln [?]
при подключенном устройстве
Где его предлагаете взять?
Этот исполняемый файл на самом деле самораспаковывающийся архив, который извлекает во временную папку много файлов и не убирает за собой.
Без драйверов устройства программа отказывается работать. Скорее всего она использует эти драйверы для работы с устройством.
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Копать глубже. Пропустить каждый шаг через API-монитор.

Драйвер не использует (читать инстру из комплекта: "If you are using USB connection, disconnect all other USB printers from the PC.")
(тут поверить мне или лично проверить)

Отчасти использует setupapi.dll / SetupDiGetClassDevs/SetupDiEnumDeviceInterfaces/SetupDiGetDeviceInterfaceDetail. ID {28d78fad-5a12-11d1-ae5b-0000f803a8c2}. Это спулер USB/LPT/и пр.

Вернусь в начало.
Через PIPE00/01 общаться умею (W/R) с помощью _WinAPI_CreateFileEx.
Не получается SETUP/CONTROL пакеты в USB порт слать..


А эта софтина еще умеет SETUP/CONTROL пакеты. Вот и хочу тоже на AutoIT.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
Sln
Вы умышленно не используете тег гиперссылки?
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
А эту функцию API-монитором не поймал :( Вопрсы бы отпали... скорее всего.

Поймал обмен с принтером (GET_STATUS/SET_FEATURE/GET_DESCRIPTOR/SET_CONF) USB-монитором.

И их надо слать/получать AutoIt'ом..
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Запустил USB-сниф и API-mon. Выбрал DeviceIoControl / WriteFile / WriteFileEx. Подключил девайс, запустил прогу...
Вывалился список DeviceIoControl'ов. Полистал. Не нашел в буферах API-mon'а ответов нужных.

Получается вендор-спецефичные не ловит... Можно же вручную задать setup-пакет...

Примерчики бы этого DeviceIoControl с Setup-пакетами на AutoIt'е где глянуть.
 

Вложения

  • s1.png
    s1.png
    57.5 КБ · Просмотры: 29
  • s2.png
    s2.png
    88.1 КБ · Просмотры: 33
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
Код:
#include <WinAPIFiles.au3>
_WinAPI_DeviceIoControl ($hDevice, $iControlCode [, $pInBuffer = 0 [, $iInBufferSize = 0 [, $pOutBuffer = 0 [, $iOutBufferSize = 0]]]] )


$hDevice есть (например тот, который пишется и читается \\?\usb#vid_04e8&pid_3469&mi_01#8&1c53c03&2&0001#{28d78fad-5a12-11d1-ae5b-0000f803a8c2})
$iControlCode 0x00400000000056C1 (? исодя из скриншота)
дальше по параметрам вызова имею тёмный лес (

hlp me pls!
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Дальше нужно под этот код (iControlCode) создать структуру(ы) определененную, и передать размеры и указатели на чтение(если нужно) и запись(если нужно)



Добавлено:
Сообщение автоматически объединено:

Код 2228284 это 0x22003C а это IOCTL_USBPRINT_VENDOR_GET_COMMAND
 
Автор
S

Sln

Знающий
Сообщения
49
Репутация
7
вот именно с ними и туплю... с этими структурами.

C setupapi.dll (SetupDiGetClassDevs/SetupDiEnumDeviceInterfaces/SetupDiGetDeviceInterfaceDetail) на примерах разобрался... собрал определение хендла для R/W.

мож по удаленке кто из профи за возмездно howto накодит?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
А вы готовых примеров на других языках не находили?
 
Верх