Winpcap и DeviceIoControl - код ошибки 1 на Win7 - PullRequest
0 голосов
/ 24 июля 2011

Я пытаюсь использовать функцию Winpcap PacketRequest () (находится в packet32.h) для отправки OID на сетевой адаптер.Он работает на XP32, не работает на Win7 32 и Win7 64 (в Win7 64 я получаю код последней ошибки 1, в 32 я не знаю - у меня нет доступа к 32-битной версии в данный момент).Я посмотрел на источник функции PacketRequest () - она ​​вызывает DeviceIoControl (), и эта функция не работает и поэтому не выполняет PacketRequest ().

Работаю ли я с неправильными библиотеками Winpcap?(Я установил WinPcap_4_1_2.exe)

Почему он не работает на Win7?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 июля 2011

могу ли я увидеть ваш стартовый код.это звучит как загрузка dll и попытка вызвать некоторые внутренние методы,

вам следует придерживаться API, пока вы точно не знаете, как winpcap работает внутри.

для записи необработанного пакета в сетькарта, вы должны использовать функцию API

int pcap_sendpacket  ( pcap_t *  p,  
                       u_char *  buf,  
                       int  size ) 

http://www.winpcap.org/docs/docs_41b5/html/group__wpcapfunc.html#g51dbda0f1ab9da2cfe49d657486d50b2

, прежде чем вы можете сделать это, вам нужно открыть сетевой адаптер с

pcap_t* pcap_open_live  ( const char *  device,  
                          int  snaplen,  
                          int  promisc,  
                          int  to_ms,  
                          char *  ebuf) 

http://www.winpcap.org/docs/docs_41b5/html/group__wpcapfunc.html#gae6abe06e15c87b803f69773822beca8

не видя ваш код, я не могу помочь.Я написал одно приложение, которое использует winpcap, оно работает на XP (32/64), Vista (32/64), Win7 (32/64) без проблем.

...