acceptit
驱动牛犊
驱动牛犊
  • 注册日期2002-03-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1607回复:6

ptsendcomplete的疑问?

楼主#
更多 发布于:2002-05-19 10:32
那位大虾能讲讲ptsendcomplete的功能?
还有其中
NdisIMCopySendCompletePerPacketInfo (Pkt, Packet);
和 NdisMSendComplete(pAdapt->MiniportHandle,
Pkt,
Status);
这两个含数都做了些什么?
我看了ddk多次,还是不太明把这个流程!

最新喜欢:

chilichili
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-21 17:01
NdisIMCopySendCompletePerPacketInfo (Pkt, Packet);
把下层返回来的Packet中的相关信息copy 到Pkt中,
接下来调用NdisMSendComplete以Pkt为参数(其实你可以print pkt的地址,然后会发现这是你以前imd中send出去的包中保留位所保存的上层的包指针地址。)通知上层sendcomplete,请上层调用上层的PtSendComplete吧。
111
fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-23 20:49
建议再讲一讲这个函数,用来解决什么的,都是怎么做得吧。为什么写在pt**中。

五也很感兴趣.
有点意思。。。 呵呵!
acceptit
驱动牛犊
驱动牛犊
  • 注册日期2002-03-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-23 21:04
我也同意呀,不是很明白的
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-23 23:16
是这样,你的imd中的mpsend调用ndissend时,如果返回非pending的状态,那么可以在mpsend那里free(你分配的那个packet);
如果pending.那么,下层会调用ndismsendcomplete通知imd的ptsendcomplete,这时你再回收你分配的packet,如此而已
111
fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-24 14:50
在请教一个问题:
To prepare the buffer and packet descriptors for reuse, ProtocolSendComplete should follow these guidelines:

Always call an NdisUnchainBufferAtXxx function as many times as necessary to save the buffer descriptor pointers before ProtocolSendComplete calls NdisReinitializePacket with the descriptor at Packet

Always pass the pointer returned by NDIS_OOB_DATA_FROM_PACKET to NdisZeroMemory to clear an associated out-of-band data block, never the Packet pointer

这两段话,在程序的什么地方体现的。谢谢!

有点意思。。。 呵呵!
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-05-24 21:19
这个意思是说,如果当时你在MPSend时,发的包是chain了buffer的,那么你在这里就得unchain你原来chain的buffer,说穿了就是回收你的东东。
   passthru只是一个架子,里面是空的,这些就得自已加上去
111
游客

返回顶部