阅读:2456回复:4
如何遍历已安装的协议,在2k下?
在《网络数据包的拦截技术》一文中作者提到NDIS_PROTOCOL_BLOCK结构,利用该结构中的NextProtocol(win me,98下)可以遍历已安装的协议,在2K DDK中并没有给出NDIS_PROTOCOL_BLOCK的结构定义,无法做遍历,试图强行用NextProtocol做遍历,安装passthru后导致系统重起,请大侠们指教。
|
|
沙发#
发布于:2003-12-01 13:34
不懂,不过我知道用NetCfg给出的一些接口可以做遍历.
首先用INetCfg的QueryNetCfgClass接口获取INetCfgClass接口,比如: INetCfg *pnc; INetCfgClass *pncclass; pnc->QueryNetCfgClass( &GUID_DEVCLASS_NETTRANS, IID_INetCfgClass, (PVOID *)&pncclass ); 然后用pncclass->EnumComponents进行枚举就可以了. 在某个头文件里,下面这几个GUID可以找到: GUID_DEVCLASS_NETCLIENT // client GUID_DEVCLASS_NETSERVICE // service GUID_DEVCLASS_NETTRANS // protocol GUID_DEVCLASS_NET // netcard 具体哪个里面一时找不到了,或者自己定义也可以,对应注册表LocalMachine->CurrentControlSet->Control->Network的四个子键名,比如{4D36E972-E325-11CE-BFC1-08002BE10318}就是网卡类的GUID,大伙儿都是知道的了. |
|
|
板凳#
发布于:2003-12-01 13:39
另外NDIS_PROTOCOL_BLOCK结构DDK里是没有给出,但可以在ndis.h中找到.类似的结构很多,一般非文档化的东西DDK都不会给出,但仍然是公开的结构.
|
|
|
地板#
发布于:2003-12-01 16:24
DDK中也没有给出这个结构,真是很郁闷!
|
|
地下室#
发布于:2003-12-01 17:04
晕!!!
|
|
|