librarat
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2004-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1285回复:4

分配Buffer Pool的问题,请大侠指教

楼主#
更多 发布于:2003-06-12 10:35
修改Passthru的代码,拷贝接收报文,这样需要在初始化的时候分配Buffer Pool,我在MpInitialize中加入如下代码:

NDIS_HANDLE BufferPoolHandle;
NDIS_STATUS Status;
……………………
NdisAllocateBufferPool(
    &Status,
    &BufferPoolHandle,
    100);
DbgPrint(\"Allocate Buffer Pool,Handle = %lu.\\n\",BufferPoolHandle);
………………

打出来的接过是Handle为 0!
改在PtBindAdapter中进行这个操作,结果一样~~~~~~~~~~
没有添加其他代码。
但是分配Packt Pool的操作没有问题。

而且这个BufferPool的确不可用,会导致死机。

由于这个函数总是返回Status=NDIS_STATUS_SUCCESS,所以不知道失败的原因何在~~~~~~~~~
有哪位遇到过这样的问题吗?请各位大侠指教如何解决。
LinX
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2007-07-05
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-12 11:27
在DRIVERENTRY()中分配BUFFER POOL!
librarat
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2004-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-12 11:56
我刚刚在DriverEntry中试了一下,还是 0!

而且我的想法是每个网卡一个BufferPool,这个在DriverEntry中是没法实现的
另外,DriverEntry的反操作函数是什么,即我该在何时释放其中分配的资源,好像MpHalt是在Unbind时调用的

[编辑 -  6/12/03 by  librarat]
Newandold
驱动牛犊
驱动牛犊
  • 注册日期2003-01-10
  • 最后登录2004-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-13 13:39
老大,你要看status的状态判断是否成功,BufferPoolHandle为零也没事。不信你试试!!!
librarat
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2004-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-13 18:37
总算查出问题了
NdisAllocateBufferPool是个唬人的东西,啥事都没干,就是将两个
输出参数置0
我的问题是别的原因引起的
游客

返回顶部