我正在尝试使用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上运行?
提前致谢。
答案 0 :(得分:-1)
我可以看到您的启动代码。 这听起来像你加载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),没有问题。