首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WFP标注和NDIS LWF不能坐在同一个驱动程序二进制文件中

WFP标注和NDIS LWF不能坐在同一个驱动程序二进制文件中
EN

Stack Overflow用户
提问于 2015-07-12 03:04:46
回答 1查看 610关注 0票数 1

我正在开发WinPcap,一个NDIS轻量级过滤器驱动程序.为了捕获回环包,我还制作了一个Windows过滤平台(WFP)标注驱动程序。我已经在中集成了这两个部分,一个驱动程序binary,但是当系统重新启动d时,新的驱动程序无法运行。

现在,我刚刚放弃了WFP标注INF文件,只使用NDIS来安装这个集成的驱动程序(我不知道如何对一个驱动程序二进制文件使用两个INF文件),它可以毫无问题地安装,工作正常(我的意思是我可以通过WFP捕获回送数据包)。但是,当系统重新启动时,将不会加载驱动程序,当我运行“restarted”(npf是驱动程序服务名称)时,它说:

代码语言:javascript
复制
C:\Windows\system32>net start npf
System error 2 has occurred.

The system cannot find the file specified.

然后,我在驱动程序中注释了所有WFP代码和库导入(fwpkclnt.lib和uuid.lib),驱动程序在重新启动后运行良好。因此,世界粮食计划署()指出INF缺失的原因应该是。但是我不知道如何为这个新的驱动程序编写INF文件。

1)如何安装这个与NDIS过滤器和WFP标注混合的驱动程序?我知道NDIS使用INetCfg API来安装,而WFP的标注可以通过右键单击inf文件并选择" install“来安装(我不知道它的编程方式)。这两种方法似乎是不同的。

2)如何编写INF文件,特别是设备安装类?NDIS的类是NetService,而WFP的类是WFPCALLOUTS。我可以在一个INF文件中指定两个类吗?还是我应该提供两个INF文件?如果我没有提供正确的INF文件呢?就像我只提供NetService类的INF文件一样,WFP的标注部分会起作用吗?

我的NDIS过滤器INF文件类似于:

代码语言:javascript
复制
[version]
Signature       = "$Windows NT$"
Class           = NetService
ClassGUID       = {4D36E974-E325-11CE-BFC1-08002BE10318}
CatalogFile     = npcap.cat
Provider        = %Insecure%
DriverVer=05/15/2015,14.48.38.905

世界粮食计划署的呼吁是:

代码语言:javascript
复制
[Version]
Signature = "$WINDOWS NT$"
Class = WFPCALLOUTS
ClassGuid = {57465043-616C-6C6F-7574-5F636C617373}
Provider = %LBTest%
CatalogFile = LBTest.cat
Thanks!
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 16:30:24

我已经解决了这个问题。答案是:

  1. 提供两种信息,一种是为妇联提供的,一种是为粮食计划署的呼叫提供的。
  2. 安装相同的二进制文件两次:首先使用WFP标注方式安装二进制文件,然后使用LWF方式安装二进制文件。卸载应该颠倒。

代码已经在运行,请参见此处:https://github.com/nmap/npcap

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31363985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档