coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1816回复:9

NdisAllocatePacketPool ==> 系统崩溃???!!!

楼主#
更多 发布于:2002-11-19 17:25
我在NDIS HOOK 程序的初始化模块(WIN2000)中调用NdisAllocatePacketPool函数,但会导致系统蓝屏,系统提示分页错误,请教各位有没有遇到过相似的情况?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-19 17:48
怎么调用的?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-19 17:55
我分别在程序的几个位置调用:
NdisAllocatePacketPool(
   &status,
   packetpool,
   PACKET_NUMBER,
   sizeof(PACKET_RESERVED)
   );
if(status!=NDIS_STATUS_SUCCESS){
dprintf((\"failed to allocate packet pool!!!!\"));
}

NdisAllocateBufferPool(
   &status,
   bufferpool,
   BUFFER_NUMBER);
if(status!=NDIS_STATUS_SUCCESS){
dprintf((\"failed to allocate buffer pool!!!!\"));
}


都会导致系统崩溃。
lao_o
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-14分
  • 威望110点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-19 18:04
NdisAllocatePacketPool(
&status,
packetpool,
PACKET_NUMBER,
sizeof(PACKET_RESERVED)
);
中的packetpool给错了吧,应该是&packetpool,这里应该是一个NDIS_HANDLE的指针类型。
另外bufferpool也要改为&bufferpool
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-19 21:02
 

我分别在程序的几个位置调用:

一个地方就行了,

那两个地方要指针的地址,

学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-19 21:37
再此请教一下:
   我调用NdisTransferData(
            &status,
            NdisBindingContext,
            MacReceiveContext,
            0,
            PacketSize,
            packet,
            &BytesTransferred);
   时,在packet结构体中除了连接一个buffer之外还需要填充什么信息?我的程序在运行到此函数数时系统崩溃!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-19 23:03
首先分配packet,然后分配一块packetsize大小的内存,然后用一个buffer描述符指向这块内存,然后把buffer描述符chainatfront到一个packet上,就ok了
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-20 13:06
我就是这样做的呀:(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-20 13:08
传递的参数有问题吧,这个得自己找了,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-20 13:10
肯定是在packet描述符、BUF描述符、BUF这三个关系中出错。好好找找
==寂寞骆驼==
游客

返回顶部