Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Не удается выставить настройки проекта VdwLibs для Win32 WDM Free  (Прочитано 26722 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #30 : 07-06-2010 19:10 » 

1. да
2. http://msdn.microsoft.com/en-us/library/ff538953(VS.85).aspx
в эту функцию целиком буфер внедрять не надо. в нее надо передавать кусочек этого вашего буфера)
допустим вы хотите читать. грубо говоря, для этого вам необходимо завести в драйвере нитку, в которой вы посылаете запросы чтения при помощи этой функции. а по возврату из нее то что она прочитала из железки - копировать в ваш буфер. чтобы потом бОльшими кусками вернуть все это приложению.

хм. а вобще для простоты можно попробовать (для начала) просто тупо повторять на один запрос от приложения допустим десять запросов чтения железки внутри драйвера) от лагов вы до конца не избавитесь, но будет немного понятнее)
« Последнее редактирование: 07-06-2010 19:18 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Bulat
Участник

ru
Offline Offline

« Ответ #31 : 14-06-2010 07:51 » 

Ochkarik, в моем случае используется буфер MDL.
Код:
   UsbBuildInterruptOrBulkTransferRequest(
            urb,
            sizeof(struct _URB_BULK_OR_INTERRUPT_TRANSFER),
            PipeInformation->PipeHandle,
            NULL,
            mdl,
            transferLength,
            USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK,
            NULL
            );
То есть, по этому запросу данные из конечной точки перепичываются в mdl. А уже оттуда по запросу IRP_MJ_READ (с помощью функции A5M2ReadDispatch()) данные переписываются в буфер моего приложения. И вот тут мне непонятно как происходит обращение к MDL (я его не нашел)?
 Таким образом, я не знаю как прикрутить свой буфер  к этим функциям((
Я думал так, нужно самостоятельно в свой буфер собирать данные из буфера MDL, а затем, при его наполнении, разрешать функции A5M2ReadDispatch() обращаться к моему буферу. Поэтому меня и интересовал пример использования кольцевого буфера именно в драйвере)
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines