阅读:2704回复:5
处理ReceivePacket蓝屏,代码求解![]() 代码如下: PNDIS_PACKET pPacket(老包); NdisBuffer=pPacket->Private.Head; NdisQueryBufferSafe(NdisBuffer,&tembuffer,©size,NormalPagePriority); uTotalLen=pPacket->Private.TotalLength; NdisAllocatePacketPool(&Status,&gPacketPool,1,4*sizeof(PVOID)); //分配Packet池 if(Status != NDIS_STATUS_SUCCESS){return;} NdisAllocatePacket(&Status,&MyPacket,gPacketPool); //分配Packet if(Status != NDIS_STATUS_SUCCESS){return;} NdisAllocateBufferPool(&Status,&BufferPoolHandler,1); //分配Buffer池 if(Status != NDIS_STATUS_SUCCESS){return;} NdisAllocateBuffer(&Status,(PNDIS_BUFFER*)&tembuffer,BufferPoolHandler,tembuffer,uTotalLen); if(Status != NDIS_STATUS_SUCCESS){return;} NdisChainBufferAtFront(MyPacket,(PNDIS_BUFFER)tembuffer); //关联BUFFER和包 MyPacket->Private.Head->Next=NULL; MyPacket->Private.Tail=NULL; NDIS_SET_PACKET_HEADER_SIZE(MyPacket,14); } return ReceivePacket(MyPacket); //交回给ReceivePacket继续处理.工作正常,但是有时蓝屏. 有时候会蓝屏,DUMP如下: ![]() READ_ADDRESS: 00000008 CURRENT_IRQL: 2 FAULTING_IP: NDIS!NdisReturnPackets+48 f72467fa 8b7308 mov esi,dword ptr [ebx+8] DEFAULT_BUCKET_ID: DRIVER_FAULT BUGCHECK_STR: 0xD1 PROCESS_NAME: http.exe TRAP_FRAME: f64cc9f4 -- (.trap 0xfffffffff64cc9f4) ErrCode = 00000000 eax=ffffffff ebx=00000000 ecx=00000002 edx=00000002 esi=81bdef98 edi=81e33a58 eip=f72467fa esp=f64cca68 ebp=f64cca80 iopl=0 nv up ei pl zr na pe nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246 NDIS!NdisReturnPackets+0x48: f72467fa 8b7308 mov esi,dword ptr [ebx+8] ds:0023:00000008=???????? Resetting default scope LAST_CONTROL_TRANSFER: from 80874ad9 to 8081d97e STACK_TEXT: f64cc5f0 80874ad9 00000003 00000008 00000000 nt!RtlpBreakWithStatusInstruction f64cc63c 808758f6 00000003 00000008 f72467fa nt!KiBugCheckDebugBreak+0x19 f64cc9d4 80826493 0000000a 00000008 00000002 nt!KeBugCheck2+0x5b2 f64cc9d4 f72467fa 0000000a 00000008 00000002 nt!KiTrap0E+0x2a1 f64cca80 f6c53486 81bdefb0 00000001 f64ccc98 NDIS!NdisReturnPackets+0x48 f64cca98 f6c533f6 f64ccb18 f6c533f6 81bdef98 afd!AfdReturnBuffer+0xe4 f64ccd34 8082337b 0000063c 00000634 00000000 afd!AfdFastConnectionReceive+0x2be f64ccd34 00000000 0000063c 00000634 00000000 nt!KiFastCallEntry+0xf8 STACK_COMMAND: kb FOLLOWUP_IP: NDIS!NdisReturnPackets+48 f72467fa 8b7308 mov esi,dword ptr [ebx+8] SYMBOL_STACK_INDEX: 4 SYMBOL_NAME: NDIS!NdisReturnPackets+48 FOLLOWUP_NAME: MachineOwner MODULE_NAME: NDIS IMAGE_NAME: NDIS.sys DEBUG_FLR_IMAGE_TIMESTAMP: 42435dfa FAILURE_BUCKET_ID: 0xD1_NDIS!NdisReturnPackets+48 BUCKET_ID: 0xD1_NDIS!NdisReturnPackets+48 Followup: MachineOwner --------- |
|
沙发#
发布于:2009-12-12 11:20
![]() ![]() |
|
板凳#
发布于:2009-12-12 19:01
![]() ![]() |
|
地板#
发布于:2009-12-13 01:34
http://msdn.microsoft.com/en-us/library/ms795650.aspx
你的errocode好像有问题吧,找不到都是0de . |
|
地下室#
发布于:2009-12-14 03:20
烦请兄弟指点一二.
![]() |
|
5楼#
发布于:2010-08-02 18:17
blog.csdn.net/forxy/archive/2010/08/02/5783382.aspx
我的解决方法: |
|