阅读:1232回复:2
新手郁闷请教:中间层驱动加密MPSend函数蓝屏死机
各位大虾求救阿
我刚上手中间层驱动,想做一个加密的东东。具体算法很简单,就是把数据包中的数据8bit前后调一下位再解密。 发送的时候修改的是MPSend函数 Status=NdisAllocateMemory(&pPacketContent,2000,0,HighestAcceptableMax); if(Status!=NDIS_STATUS_SUCCESS) { DBGPRINT(\"AllocateMemeory Failed!\"); return (NDIS_STATUS_NOT_ACCEPTED); } if(pPacketContent==NULL) { DBGPRINT(\"AllocateMemory Failed,is empty\"); return (NDIS_STATUS_NOT_ACCEPTED); } NdisZeroMemory(pPacketContent,2000); NdisQueryPacket(MyPacket,NULL,NULL,&FirstBuffer,TotalPacketLength); if(FirstBuffer==NULL) { DBGPRINT(\"WRONG\"); return (NDIS_STATUS_NOT_ACCEPTED); } NdisMoveMemory(pPacketContent,FirstBuffer,*TotalPacketLength);//到这句SoftIce蓝屏死机 狂郁闷,但又看不出什么问题,如果不用NdisMoveMemory函数的话,还有其它办法把Packet里的内容拷出来做修改吗,而且找了很久,好像大家也没有关于加密的文章,能推荐一下吗,真的非常感谢:) |
|
沙发#
发布于:2005-06-12 16:51
非常感谢斑竹,这个问题已经得到解决,bowing
|
|
板凳#
发布于:2005-06-08 22:16
有两个错误
1.NdisQueryPacket(MyPacket,NULL,NULL,&FirstBuffer,TotalPacketLength); 应该&TotalPacketLength NdisMoveMemory(pPacketContent,FirstBuffer,*TotalPacketLength); 应该是TotalPacketLength 2.FirstBuffer是一个PNDIS_BUFFER的结构,不是一个直接指向内存的指针,要调用NdisQueryBuffer得到VirtualAddress,再来调用 NdisMoveMemory(pPacketContent,VirtualAddress,TotalLength) |
|