阅读:1607回复:6
ptsendcomplete的疑问?
那位大虾能讲讲ptsendcomplete的功能?
还有其中 NdisIMCopySendCompletePerPacketInfo (Pkt, Packet); 和 NdisMSendComplete(pAdapt->MiniportHandle, Pkt, Status); 这两个含数都做了些什么? 我看了ddk多次,还是不太明把这个流程! |
|
最新喜欢:chili |
沙发#
发布于:2002-05-21 17:01
NdisIMCopySendCompletePerPacketInfo (Pkt, Packet);
把下层返回来的Packet中的相关信息copy 到Pkt中, 接下来调用NdisMSendComplete以Pkt为参数(其实你可以print pkt的地址,然后会发现这是你以前imd中send出去的包中保留位所保存的上层的包指针地址。)通知上层sendcomplete,请上层调用上层的PtSendComplete吧。 |
|
|
板凳#
发布于:2002-05-23 20:49
建议再讲一讲这个函数,用来解决什么的,都是怎么做得吧。为什么写在pt**中。
五也很感兴趣. |
|
|
地板#
发布于:2002-05-23 21:04
我也同意呀,不是很明白的
|
|
地下室#
发布于:2002-05-23 23:16
是这样,你的imd中的mpsend调用ndissend时,如果返回非pending的状态,那么可以在mpsend那里free(你分配的那个packet);
如果pending.那么,下层会调用ndismsendcomplete通知imd的ptsendcomplete,这时你再回收你分配的packet,如此而已 |
|
|
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 这两段话,在程序的什么地方体现的。谢谢! |
|
|
6楼#
发布于:2002-05-24 21:19
这个意思是说,如果当时你在MPSend时,发的包是chain了buffer的,那么你在这里就得unchain你原来chain的buffer,说穿了就是回收你的东东。
passthru只是一个架子,里面是空的,这些就得自已加上去 |
|
|