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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: И опять про NDIS IM Driver  (Прочитано 12556 раз)
0 Пользователей и 1 Гость смотрят эту тему.
_!bAd!_
Гость
« : 29-01-2004 09:11 » 

Помогите кто знает.
1)Надо изменить посылаемый пакет, а на приеме поменять его обратно
как это сделать?
2) Хотя бы просто - как правильно изменить пакет перед посылкой и как правильно принятый пакет изменить обратно и пихнуть дальше?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #1 : 29-01-2004 11:15 » 

Задай этот вопрос на форуме  www.ntndis.com  там спецы по NDIS.
Записан
Anonymous
Гость
« Ответ #2 : 29-01-2004 17:34 » 

Да, только что то эти специ жепой не ворочают
Записан
Anonymous
Гость
« Ответ #3 : 29-01-2004 17:34 » 

е=о (торопился) =)
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #4 : 29-01-2004 23:11 » 

Цитата: _!bAd!_
Помогите кто знает.
1)Надо изменить посылаемый пакет, а на приеме поменять его обратно
как это сделать?
2) Хотя бы просто - как правильно изменить пакет перед посылкой и как правильно принятый пакет изменить обратно и пихнуть дальше?

Я так думаю, что с помощью NdisQueryPacket и NdisQueryBuffer надо получить указатель на требуемый буфер, и, по этому месту в памяти записать те значения, которые тебе нужны... Но есть вопрос поинтереснее -- как длину пакета поменять? Тоесть приписать  туды еще что-нить? ...
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
_!bAd!_
Гость
« Ответ #5 : 30-01-2004 06:32 » 

Цитата
Я так думаю, что с помощью NdisQueryPacket и NdisQueryBuffer надо получить указатель на требуемый буфер, и, по этому месту в памяти записать те значения, которые тебе нужны... Но есть вопрос поинтереснее -- как длину пакета поменять? Тоесть приписать туды еще что-нить? ...

Это я уже понял, длинну можно изменить - добавив или удалив буффер, но будет ли это - корректно вот в чем вопрос
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #6 : 30-01-2004 07:09 » 

Цитата

Да, только что то эти специ жепой не ворочают


Ну дак они и не нанимались тебе отвечать сразу, когда будешь знать столько же сколько и они будешь в.....ся.
Записан
_!bAd!_
Гость
« Ответ #7 : 30-01-2004 07:44 » 

Ладно вам, давайте не будем здесь друг друга и других поливать г...ном, лучше помогите если кто знает
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #8 : 01-02-2004 23:16 » 

Цитата: _!bAd!_
Ладно вам, давайте не будем здесь друг друга и других поливать г...ном, лучше помогите если кто знает

Я скоро это буду пробовать, так что напишу...
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #9 : 01-02-2004 23:24 » 

Цитата: _!bAd!_
Это я уже понял, длинну можно изменить - добавив или удалив буффер, но будет ли это - корректно вот в чем вопрос

Кстати, а какие там функции для добавления/удаления буфера??? :?:
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
_!bAd!_
Гость
« Ответ #10 : 02-02-2004 06:21 » 

NdisChainBufferAtFront NdisChainBufferAtBack
NdisUnchainBufferAtFront, NdisUnchainBufferAtBack
Записан
_!bAd!_
Гость
« Ответ #11 : 03-02-2004 06:43 » 

в общем очередное уточнение вопроса:
Когда приходит пакет - вызывается ProtocolReceive ей передается помимо всего прочего HeaderBuffer и LookaheadBuffer - они readonly и PacketSize
в случае если PacketSize>LookAheadBufferSize то после вызова NdisMEthIndicateReceive  мы попадаем в MiniportTransferData - там все просто и понятно, но вот если  PacketSize<LookAheadBufferSize то нужно модифицировать этот самый LookAheadBuffer - как это сделать правильно, а то у меня  переодически система падает на синий экран смерти  Жаль

остальное всё вроде работает.
Записан
_!bAd!_
Гость
« Ответ #12 : 03-02-2004 06:45 » 

Уточню система - winxp в 2k вообще не вызывается ProtocolReceive, а вызывается - ProtocolReceivePacket - там все просто
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines