阅读:1400回复:4
请教使用NdisTransferData函数蓝屏的问题,郁闷啊
我在ptreceive函数中使用了NdisTransferData函数,不过总是蓝屏,代码如下:
if ((!pAdapt->MiniportHandle) || (pAdapt->MPDeviceState > NdisDeviceStateD0)) { Status = NDIS_STATUS_FAILURE; } else do { NdisDprAllocatePacket(&Status, &MyPacket, pAdapt->RecvPacketPoolHandle); if(Status == NDIS_STATUS_SUCCESS) { NdisTransferData(&Status, pAdapt->BindingHandle, MacReceiveContext, 0, PacketSize, MyPacket, &BytesTransferred); if(Status == NDIS_STATUS_SUCCESS) DbgPrint("NdisTransferData Success!\n"); if(Status == NDIS_STATUS_PENDING) DbgPrint("NdisTransferData Pending!\n"); if(Status == NDIS_STATUS_FAILURE) DbgPrint("NdisTransferData Failed!\n"); } NdisDprFreePacket(MyPacket); //下面是通过判断switch (pAdapt->Medium)而使用的发送函数,请问这是为什么啊? 第一次调用NdisTransferData时可以通过,总是第二次就蓝屏了,请大侠们看看吧,我是新手,在这谢谢你们了~~ |
|
沙发#
发布于:2007-08-05 19:09
刚发现出现蓝屏是在LookAheadBufferSize小于PacketSize时发生的,也就是NdisTransferData真正起作用的时候蓝屏的,请问各位大侠,这是什么原因啊?我的MyPacket这个包描述符的定义是:PNDIS_PACKET MyPacket,初始化就是通过NdisDprAllocatePacket函数进行的,请问这有什么问题么?谢谢了~~
|
|
板凳#
发布于:2007-08-05 23:54
ddk里有例子 照他来 就不会错
|
|
地板#
发布于:2007-08-06 09:22
请问是在那个例子中呢,我主要看了passthru,对其他的例子不是很了解,谢谢~~
|
|
地下室#
发布于:2007-08-06 17:15
packet里面没有buffer 你发送什么啊
|
|