【问题标题】:Winpcap and DeviceIoControl - Error code 1 on Win7Winpcap 和 DeviceIoControl - Win7 上的错误代码 1
【发布时间】:2011-07-24 08:55:31
【问题描述】:

我正在尝试使用 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 上运行?

提前致谢。

【问题讨论】:

    标签: winpcap oid deviceiocontrol


    【解决方案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) 没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 2017-12-06
      • 2014-03-29
      相关资源
      最近更新 更多