lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1106回复:0

求救(我是超级菜):NDIS过滤的代码,向大牛讨教一下!

楼主#
更多 发布于:2008-10-21 14:50
请问前辈:
我下载了一个NDIS过滤的源码是分成两个部分的:
一个部分是HOOK的NDIS的四个函数:NdisRegisterProtocol、NdisDeregisterProtocol、NdisOpenAdapter、NdisCloseAdapter,
并有一个内核控制代码IOCTL_CMD_GET_KM_IFACE:是返回一个这样的结构
struct ndis_hk_interface {
    ULONG        version;        /**< should be NDIS_HK_INTERFACE_VER */

    /**
     * Get list of adapters
     * @param    buf      output buffer for adapter names
     * @param    buf_size    size in wchar_t of buf (can be 0)
     * @return        number of wchar_t has to be in buffer
     *        if greater than buf_size only partial information has been copied
     * @see get_adapter_list
     */
    int (*get_adapter_list)(wchar_t *buf, int buf_size);

    /**
     * Attach or remove filter
     * @param    flt                   information about packet filter
     * @param    add    TRUE - attach filter; FALSE - remove filter
     * @param    to_top    TRUE - for attaching to top of stack (useless with add == FALSE)
     * @see attach_filter
     */
    void (*attach_filter)(struct filter_nfo *flt, BOOLEAN add, BOOLEAN to_top);

#if NDIS_HK_INTERFACE_VER > 1
    // add future definitions here...
#endif
};
而这个结构的全局变量什么也没做就传到了过滤驱动,然后给赋值。
哎我表达不清楚!
我其实,意思是,他传这个变量有什么用啊,我本来想应该传的是一些过滤到的数据,然后经过过滤驱动进行处理在返回到这个HOOK NDIS的驱动。所以我就看不懂了,请你们帮帮我吧!
游客

返回顶部