studyli
驱动牛犊
驱动牛犊
  • 注册日期2007-08-05
  • 最后登录2007-08-06
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1401回复:4

请教使用NdisTransferData函数蓝屏的问题,郁闷啊

楼主#
更多 发布于:2007-08-05 17:39
      我在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时可以通过,总是第二次就蓝屏了,请大侠们看看吧,我是新手,在这谢谢你们了~~
swordkiller
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2011-03-02
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-06 17:15
packet里面没有buffer 你发送什么啊
studyli
驱动牛犊
驱动牛犊
  • 注册日期2007-08-05
  • 最后登录2007-08-06
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-06 09:22
请问是在那个例子中呢,我主要看了passthru,对其他的例子不是很了解,谢谢~~
dfbb7788
驱动牛犊
驱动牛犊
  • 注册日期2007-07-07
  • 最后登录2010-05-06
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望106点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-05 23:54
ddk里有例子 照他来 就不会错
studyli
驱动牛犊
驱动牛犊
  • 注册日期2007-08-05
  • 最后登录2007-08-06
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-08-05 19:09
刚发现出现蓝屏是在LookAheadBufferSize小于PacketSize时发生的,也就是NdisTransferData真正起作用的时候蓝屏的,请问各位大侠,这是什么原因啊?我的MyPacket这个包描述符的定义是:PNDIS_PACKET      MyPacket,初始化就是通过NdisDprAllocatePacket函数进行的,请问这有什么问题么?谢谢了~~
游客

返回顶部