Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› USB-драйвер
Посл.ответ Сообщение

Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 октября 2007 18:24
· Личное сообщение · #1

Здравствуйте!
У меня вопрос по поводу написания USB-драйвера в DS.. В книге Агурова "Интерфейс USB. Практика использования и программирования" довольно подробно описан этот процесс. НО.. Все довольно сильно изменилось (книга морально устаревает). Агуров пользовался (если верить ему) DDK под WinXP, VS6 и DS непонятной версии.
Шаблон драйвера генерируется нормально, компилируется тоже (DDK2003, VS2005, DS3.2.1). Но это всеголишь ШАБЛОН. Необходимо написать реализацию функций чтения/записи для работы с конечными точками.
В инете ничего хорошего не нашел - кругом ссылаются на Агурова.
Ммм.. приведу пример из книги. реализация функции чтения из конечной точки (кт)
NTSTATUS AT90DriverRead(KIrp I)
{
if (I.ReadSize() == 0)
{
I.Information() = 0;
return I.PnpComplete(this, STATUS_SUCCESS);
}
NTSTATUS status = STATUS_SUCCESS;

PVOID pBuffer = I.BufferedReadDest();

ULONG dwTotalSize = I.ReadSize(CURRENT);

ULONG dwBytesRead = 0;

if (!deviceExtension->EP_OUT_1Urb.IsOpen())
{
I.Information() = 0;
return I.PnpComplete(this, STATUS_INSUFFICIENT_RESOURCES);
}

ULONG dwMaxSize = deviceExtension->EP_OUT_1Urb.MaximumTransferSize();

if (dwTotalSize > dwMaxSize) dwTotalSize = dwMaxSize;

PURB pUrb = deviceExtension->EP_OUT_1Urb.BuildInterruptTransfer(
pBuffer,
dwTotalSize,
TRUE
);
pUrb->UrbBulkOrInteruptTransfer.TransferFlags =
(USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK);

status = deviceExtension->EP_OUT_1Urb.SubmitUrb(pUrb);

dwBytesRead = pUrb->UrbBulkOkInterruptTransfer.TransferBufferLength;

delete pUrb;

I.Information() = dwBytesRead;

return I.PnpComplete(this, status);

Так вот.. нету такой фигни --> KIrp ((
Что делать-то?
Может кто сталкивался с моей проблемой.. помогите советом пжл



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 11 октября 2007 08:18
· Личное сообщение · #2

А как это компилируется, если "нету такой фигни"? И что в MSDN ничего по этому поводу не говорят?

-----
Security through obscurity is just an illusion




Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 11 октября 2007 09:36
· Личное сообщение · #3

Frolls пишет:
нету такой фигни --> KIrp ((

поставь driver studio 3.1 - там это будет



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 октября 2007 09:51 · Поправил: Frolls
· Личное сообщение · #4

Пасиб за внимание к теме!

Pushick: да просто ребята из NuMega не плохо поработали и теперь код драйвера генерируется по-другому (сильно отличается от того, что было ранее).

Infern0: хех.. с одной стороны совет очеь даже неплохой! Но разобраться в новом коде гораздо интересней и на будущее пригодится (опыт бесценен, как говорится).. Надеюсь, что ты не будешь лет через 5-10 давать тот же совет))

Никто не писал дрова для USB в DS 3.2 чтоли? Компании-разработчики (да что уж говорить - даже мелкие организации, занимающиеся проектированием) погловно на USB переходят, так что, ребят, я думаю, что вопрос очень даже актуальный



Ранг: -52.7 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 11 октября 2007 10:08
· Личное сообщение · #5

WinDriver USB for Windows automates and simplifies the development of user-mode Windows USB device drivers and hardware control applications for USB peripheral devices.
No DDK knowledge or kernel level programming required.
* Hardware diagnostics
* Automatic driver code generation
* Driver debugging
* Hardware access - using our intuitive API
Complete support for USB, PCI, PCI Express, CardBus, CompactPCI, ISA, PMC, PCI-X, PCI-104 and PCMCIA.
Enabling driver development for Windows 98/Me/NT/2000/XP/XP Embedded/Server 2003/Vista,
Windows CE.NET, Windows Mobile 5.0, Linux, Solaris and VxWorks.



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 октября 2007 11:31 · Поправил: Frolls
· Личное сообщение · #6

Inferno: ЫЫыы проще найти ds3.2, чем 3.1( если уж упомянул, то хотелось бы ссылку на ds3.1

Flair: мм.. WinDriver.. качну седня, посмотрю, что это за чудо такое

У меня такое ощущение, что я начинаю из крайности в крайность бросаться..




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 11 октября 2007 19:02
· Личное сообщение · #7

Frolls в DDK есть примеры драйверов: ...\ddk\6000\src\usb\ Там есть bulk usb пример обрабатывающий IRP_MJ_WRITE и IRP_MJ_READ

Теперь концептуально. Можно писать драйвер USB устройства на чистом С используя DDK. Но, для многих типичных проблем уже есть решения которые можно просто использовать. DS и WinDriver как рас это и делают - это библиотеки которые позволят тебе избежать написания (и понимания) большей части DDK кода.



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 октября 2007 22:33
· Личное сообщение · #8

Ребят, спасиб за внимание к теме!
Flair: качнул и поставил я WinDriver. Попытался наваять драйвер. При чтении с конечной точки - читает то, что должен читать! Версия 8.11. Может, есть кейген (я честно искал)?

S0larian: спс за совет. обязательно поищу еще раз. Все-таки интересно в коде покопаться, что там и как

WinDriver 8.11 Keygen... Если завалялся у кого, киньте на мыло плз



Ранг: -52.7 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 11 октября 2007 23:04
· Личное сообщение · #9

Frolls
Jungo.WinDriver.v8.11.32bit.Incl.Keygen-SSG
www.serials.ws/d.php?n=45030



Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 октября 2007 00:09
· Личное сообщение · #10

Jungo.WinDriver.v9.00.Incl.Keygen-ZWT (18 Mb)
rapidshare.com/files/24165602/Jungo.WinDriver.v9.00.rar



Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 октября 2007 00:35
· Личное сообщение · #11

И ещё, может пригодится:
Jungo.WinDriver.v9.00.Win64.Incl.Keygen-ZWT (16 Mb)
rapidshare.com/files/25723914/Jungo.WinDriver.v9.00.x64.rar
и Jungo.WinDriver.v9.00.Linux.Incl.Keygen-ZWT (16 Mb)
rapidshare.com/files/25723913/Jungo.WinDriver.v9.00.Linux.rar



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 октября 2007 01:18 · Поправил: Frolls
· Личное сообщение · #12

Ух, ты!
Ребят, спасибо огромное Вам! Уважаю за то, что не остаетесь равнодушными к чужим проблемам
Завтра постараюсь наваять работоспособный драйвер, а то мой девайс запылился



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 12 октября 2007 03:11
· Личное сообщение · #13

До кучи
www.geocities.jp/webcrazyjp/irpmon.htm
www.tssc.de/products/tools/irptrace/detail.htm
А ещё в сети есть USB-трейсер и снифер. Найдёшь легко.



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 октября 2007 11:35
· Личное сообщение · #14

Ratinsh: спасибо, на досуге обязательно посмотрю



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 12 октября 2007 11:46
· Личное сообщение · #15

Frolls пишет:
а то мой девайс запылился

А чё за девайс ?



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 октября 2007 12:42 · Поправил: Frolls
· Личное сообщение · #16

SergX: система сбора и обработки информации о физическом состоянии спортсменов (и пациентов, в принципе тоже можно). Собственно, контроллер AVR AT90USB1287 от ATmel. Собираюсь подключить к нему клипсу, для снятия пульсограммы, потом 2 динамометра (становой и кистевой), ну и еще кое-что (в стадии разработки). Работа больше носит научно-исследовательский характер (диссертацию пишу). Схему более-менее разработал, осталось развести. Прошивку вроде наваял, со стороны хоста накидал программку (пока только для чтения), а вот с драйвером - застрял немного. Но, надеюсь сейчас работа пойдет быстрее



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 12 октября 2007 13:22
· Личное сообщение · #17

KMDF\src\kmdf\osrusbfx2\ - не то? К чему изучать мёртвые фреймворки...


 eXeL@B —› Программирование —› USB-драйвер
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати