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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: NDIS PASSTHRU - где там содержимое пакета??? HELP!!!  (Прочитано 5245 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kife
Помогающий

by
Offline Offline

« : 21-01-2004 23:56 » 

Здравствуйте!
У меня вопрос -- ковыряюсь тут с passthru, и никак не могу понять -- а где в NDIS_PACKET содержимое пакета???

Мы с пакетом, который пришел, 3 вещи делаем:

1)))      NdisSetPacketFlags(MyPacket, NDIS_FLAGS_DONT_LOOPBACK);

2)))
NdisMoveMemory(NDIS_OOB_DATA_FROM_PACKET(MyPacket),
                  NDIS_OOB_DATA_FROM_PACKET(Packet),
                  sizeof(NDIS_PACKET_OOB_DATA));

3)))
NdisIMCopySendPerPacketInfo(MyPacket, Packet);
      
 NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(Packet,
                                 &MediaSpecificInfo,
                                 &MediaSpecificInfoSize);

      if (MediaSpecificInfo || MediaSpecificInfoSize)
      {
         NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(MyPacket,
                                    MediaSpecificInfo,
                                    MediaSpecificInfoSize);
      }

На каком этапе мы копируем содержимое (типа IP пакет, в котором , к примеру, TCP пакет) Не понял как доступ к пакетам этим получить??? Чего-то 2-й день DDK рою, а врубиться не могу! Жаль(( может на шаге №2 Не понял

И еще, можно ли изменить размер IP пакета, ну, к примеру, добавить в него чего нибудь... просто изменение содержимого и размера.Не понял
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
dachny
Гость
« Ответ #1 : 22-01-2004 08:42 » 

Наверно как бы так должно быть


   NdisQueryPacket( pNdisPacket, 0, 0, &pCurrBuffer, 0 );
   
   while ( pCurrBuffer != NULL )
   {
      NdisQueryBuffer(  pCurrBuffer, &pCurrData, &currLen );

      NdisMoveMemory( pCurrDataToMove , pCurrData, currLen );

      pData -> len += currLen;
      pCurrDataToMove = &( pData -> data[pData -> len] );

      NdisGetNextBuffer( pCurrBuffer, &pCurrBuffer );
      

      
   }
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #2 : 22-01-2004 17:34 » 

Цитата: dachny
Наверно как бы так должно быть


Спасибо, попробую обязательно!
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines