我正在开发WinPcap,一个NDIS轻量级过滤器驱动程序.为了捕获回环包,我还制作了一个Windows过滤平台(WFP)标注驱动程序。我已经在中集成了这两个部分,一个驱动程序binary,但是当系统重新启动d时,新的驱动程序无法运行。
现在,我刚刚放弃了WFP标注INF文件,只使用NDIS来安装这个集成的驱动程序(我不知道如何对一个驱动程序二进制文件使用两个INF文件),它可以毫无问题地安装,工作正常(我的意思是我可以通过WFP捕获回送数据包)。但是,当系统重新启动时,将不会加载驱动程序,当我运行“restarted”(npf是驱动程序服务名称)时,它说:
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文件类似于:
[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世界粮食计划署的呼吁是:
[Version]
Signature = "$WINDOWS NT$"
Class = WFPCALLOUTS
ClassGuid = {57465043-616C-6C6F-7574-5F636C617373}
Provider = %LBTest%
CatalogFile = LBTest.cat
Thanks!发布于 2015-12-29 16:30:24
我已经解决了这个问题。答案是:
代码已经在运行,请参见此处:https://github.com/nmap/npcap
https://stackoverflow.com/questions/31363985
复制相似问题