Здравствуйте! Прошу помощи.

В процессе написания диплома возникла необходимость написать сетевой драйвер на асме. Начитался статей и примеров, стал подводить под свои задачи и застопорился на доступе к содержимому (и к заголовку, и к данным) проходящих через драйвер пакетов.

Что я имею:
вот функция фильтрации пакетов (спасибо van за статью):
hookproc proc PacketHeader:DWORD,
Packet:DWORD,
PacketLength:WORD,
RecvInterfaceIndex:WORD,
SendInterfaceIndex:WORD,
RecvLinkNextHop:DWORD,
SendLinkNextHop:DWORD
пропускающая (возможно с модификацией) или тормозящая пакет.
Итак вопрос:

1) как на основе параметров данной функции получить адрес отправителя или получателя пакета и в каком формате он предоставляется (нужно сравнивать адреса отправителей (получателей)) - как работать с этими параметрами;
2) как получить доступ непосредственно к данным в пакете.
Если кто что подскажет, подкинет пример, ссылку или литературу, то буду очень признателен.