阅读:3880回复:5
有没有开发过 NDIS 6.0 Filter 驱动的同行 商讨请教个问题?
目前有一个困惑, 在NDIS 6.0 Filter 中:
在 NDIS 5.1 PASSTHRU中间层驱动中,可通过 PtBindAdapter函数中的DeviceName,来作为符号链接名创建WDM接口,而DeviceName是与下面的不同微端口网卡相匹配的,也就是说,应用程序可向固定的微端口网卡收发数据; 而在NDIS 6.0 Filter 中,好像没有提供类似的与底层微端口网卡绑定的功能,例如,只是用 FilterAttach函数提供的NdisFilterHandle来,作为 NdisFOidRequest函数的一个参数来向下发送OID请求,而NdisFilterHandle 只能来识别不同的filter module 由此请问:应用程序怎么能知道向固定的某个网卡发送OID请求?还是不需要知道? 请经验人士解惑,谢谢。 |
|
沙发#
发布于:2008-11-19 10:28
你对filter driver的理解有些偏差。
1. filter driver不同于intermediate driver,它并不承担NDIS binding这样的动作; 2. 如果某个miniport interface被绑定到多个protocol interface(这是通常的情况),filter driver是同样的,并不是每个protocol interface都有一份独立的fitler module; 3. filter module可以那个某个miniport interface的OID来处理,因为他们是和miniport interface在同一层级的; 下面是一些文字,来自于WDK: If more than one protocol driver binds to an miniport adapter, the filter modules are the same for both protocol drivers. Based upon the binding, NDIS routes requests to the correct protocol driver. Because filter drivers do not implement virtual miniports like an intermediate driver, filter drivers are not associated with a device object. A miniport adapter with overlying filter modules functions as a modified version of the miniport adapter. |
|
板凳#
发布于:2008-12-24 16:31
谢谢楼上的回复,但我还是不大明白。
现在调试代码遇到问题:例如,下发 发起扫描命令的 OID_DOT11_SCAN_REQUEST 请求,或者设置 BSS类型的 OID_DOT11_DESIRED_BSS_TYPE 请求,经由 本 FILTER 驱动 到 无线网卡的微端口驱动中,总是,返回 NDIS_STATUS_INVALID_OID 的 错误状态,请问不知什么原因? |
|
地板#
发布于:2009-06-24 17:40
看来你遇到了和我一样的问题。因为微软自己有个强制安装的filter dirver叫Microsoft Native Wi-Fi
filter ,它在你写的filter之下。其实你的filter只是和Microsoft Native Wi-Fi filter 通信,并没有真正绑定到微端口上。不幸的是,为了安全性,Microsoft Native Wi-Fi filter 将你的OID_DOT11_SCAN_REQUEST ,OID_DOT11_DESIRED_BSS_TYPE 过滤掉了(直接返回 NDIS_STATUS_INVALID_OID ) 你现在问题解决没有? |
|
地下室#
发布于:2009-09-11 21:32
靠,全是跨年的问题,也有人回答。
呵呵 |
|
|
5楼#
发布于:2010-05-13 10:04
回 3楼(thanfur) 的帖子
那有没有办法挠过 “Microsoft Native Wi-Fi”这个fiter? |
|