5944|10

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

高分求教NDIS问题 [复制链接]

最多只能给100,先这样吧,如果问题解决了,小可另外送分哈!

最近在研究NDIS中间层,有些问题不明白,请教:

ProtocolReceivePacket可以处理批量数据包,是怎么处理的?参数只是一个包啊,难道这个批量只是相对于ProcotolReceive偶尔一个包需要传多次的情况?

ProtocolReceivePacket和ProtocolReceive中,如果丢弃数据包,需要返回什么值?

绑定网卡时,所谓的网卡是真实的物理网卡,还是其下的miniport接口(即包括其他中间层的miniport和网卡驱动)?

最新回复

建议看看《寒江独钓:windows内核安全编程》  详情 回复 发表于 2010-2-3 23:14
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我不懂,只能帮顶
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
http://blog.eeworld.net/kyline52/archive/2007/03/13/1528239.aspx
看下这个,
绑定网卡时,所谓的网卡是真实的物理网卡
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
下边界面向无连接的中间层驱动程序能够通过ProtocolReceivePacket函数,从低层NIC驱动程序以完整数据包形式接收内入数据,该数据包由NDIS_PACKET类型的包描述符指定,也能够通过将内入数据指示给ProtocolReceive函数,并将数据复制到中间层驱动程序提供的数据包中。下边界面向连接的中间层驱动程序总是用ProtocolCoReceivePacket函数,从低层NIC驱动程序接收数据作为一个完整的数据包。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
又有问题了,网络字节序转换函数应该用哪个?我include了winsock.h,用ntohs,结果报一大堆ddk文件里面的错。我用的ddk是windows 2003的。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
ProtocolReceivePacket可以处理批量数据包是因为这个API调用后会返回一个reference count, 这个reference count 用于告诉NDIS 随后会调用NdisReturnPackets 几次来取得这个自这个packet descriptor 起在packet array 里的packet number 。

可参考DDK里关于ProtocolReceivePacket()和NdisReturnPackets()这两个API的解释。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
不懂
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢figo_liu1008及其他各位。遇到新问题了,我用PsCreateSystemThread导致蓝屏死机,代码如下:
VOID SaveLog(PVOID context)
{
        PsTerminateSystemThread(STATUS_SUCCESS);
}

KIRQL curIRQL;
HANDLE ThreadHandle;
UNICODE_STRING logStr = RTL_CONSTANT_STRING(L"ICMP packet discard.\n");
curIRQL = KeGetCurrentIrql();
KeAcquireSpinLock(&logSpinLock, &curIRQL);
ntStatus = PsCreateSystemThread(&ThreadHandle, 0L, NULL, NULL, NULL, SaveLog, (PVOID)&logStr);
if (ntStatus != STATUS_SUCCESS)
        DBGPRINT(("创建线程失败"));
else
        ZwClose(ThreadHandle);
KeReleaseSpinLock(&logSpinLock, curIRQL);

为何?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
没人写过内核线程?
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

10
 
新问题新问题,怎么判断接收到的一个包是哪块网卡来的?或者发送一个包是要从哪个网卡出去?
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

11
 
建议看看《寒江独钓:windows内核安全编程》
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条
ADI 中国30周年,与你一起走过的那些精彩瞬间!
即日起-4月30日,阅读资料,您可以参与ADI真爱粉大考验,同时为ADI中国30周年送上祝福!我们将从参与者中随机抽取精美礼品送出!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表