阅读:2170回复:2
NDIS中NdisMIndicateReceivePacket蓝屏,如何处理INT PtReceivePacket( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_PACKET Packet ) { 。。。。//此处是变量定义 NdisInterlockedIncrement(&pAdapt->PassThruStats.PTRcvPktSeen); (VOID)NdisIMGetCurrentPacketStack(Packet, &Remaining); if (Remaining) { // // We can reuse "Packet". Indicate it up and be done with it. // Status = NDIS_GET_PACKET_STATUS(Packet); //***************** //对数据进行包进行加解密操作,checksum的值也重新设定了 //****************** if (pAdapt->MiniportHandle != NULL) { NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &Packet, 1);//此处会随机蓝屏?? } return((Status != NDIS_STATUS_RESOURCES) ? 1 : 0); } } 上面是这个函数比较完整的代码,使用NdisMIndicateReceivePacket时,有哪些注意事项么? 急啊!!!!!!!!!!! 有做过的指点下兄弟。本人QQ:475338627 |
|
沙发#
发布于:2011-06-20 22:34
还是那个问题。我的个人观点:
(VOID)NdisIMGetCurrentPacketStack(Packet, &Remaining); if (Remaining) { 这个里面你操作的包,不是你自己的包。最好不要加解密。 可以把这个if()删除 } |
|
|
板凳#
发布于:2011-06-30 14:54
修改了下代码,以前是在原来包的基础上进行修改的,现在是自己构造一个新包,对这个新包进行一个加解密操作。目前测试还没发现蓝屏现象
|
|