baijbup
驱动牛犊
驱动牛犊
  • 注册日期2001-08-03
  • 最后登录2003-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2504回复:7

NdisAllocateBufferPool问题

楼主#
更多 发布于:2001-10-24 12:17
各位大虾:
   我想在passthru的mpintialize中分配一个内存pool,
代码如下:
首先,定义全局变量: PNDIS_HANDLE  MyPoolHandle;
MyPoolHandle=ExAllocatePool(PagedPool,sizeof(PNDIS_HANDLE));
NdisAllocateBufferPool(
    &reStatus,
    MyPoolHandle,
    2
    );

可是运行后,soft_ice显示MyPoolHandle不是null,但是
*mypoolhandle=0x0000000,为什么呢?????
请多多指点!!谢谢!

最新喜欢:

moqingsongmoqing...
************************ 寻找快乐的人 ************************
lao_o
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-14分
  • 威望110点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-10-24 17:26
把sizeof(PNDIS_HANDLE)改为sizeof(NDIS_HANDLE)

liuhb
驱动牛犊
驱动牛犊
  • 注册日期2001-09-25
  • 最后登录2002-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-10-24 20:51
好像从你的这段代码看不出错误。你的reStatus是如何定义的?
混在深圳
baijbup
驱动牛犊
驱动牛犊
  • 注册日期2001-08-03
  • 最后登录2003-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-25 08:55
不好意思,我发现不是exallocatepool的
问题。
我现在这样做:
NDIS_HANDLE   MyPoolHandle;
MyPoolHandle=ExAllocatePool(PagedPool,sizeof(NDIS_HANDLE));
if(MyPoolHandle!=NULL)
{
 DBGPRINT("NdisAllocateMemoryWithTag(&MyPoolHandle, sizeof( BUFFER_POOL), TAG); success!\n");
NdisAllocateBufferPool(
&reStatus,
MyPoolHandle,
2
        );

}现在我的MyPoolHandle就不等于NULL,但是,ddk中NdisAllocateBufferPool的第二个参数明明是要PNDIS_HANDLE,
真是奇怪!!!!
还有,我想问一下各位大虾,
我的PASSTHRU的PTRECIEVE中定义了PNDIS_PACKET  rePacket;
然后NdisDprAllocatePacket发现REPACKET==NULL,这样的话
我如果调用ndistransferdata肯定会出问题的,所以,我是不
是应该先用NdisAllocateMemory给repacket分配内存空间?
(我已经调用了NdisAllocateBuffer和NdisChainBufferAtFront)
请多多指点,谢谢!
************************ 寻找快乐的人 ************************
liuhb
驱动牛犊
驱动牛犊
  • 注册日期2001-09-25
  • 最后登录2002-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-10-25 09:37
在你的后一种情况,仍然应该检查*mypoolhandle
混在深圳
lao_o
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-14分
  • 威望110点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-10-25 15:18
我靠!不要把NDIS_HANDLE和PNDIS_HANDLE搞乱了。
原来你定义MyPoolHandle为PNDIS_HANDLE,那就要用ExAllocatePool(PagedPool,sizeof(NDIS_HANDLE))分配一个NDIS_HANDLE的空间,因为MyPoolHandle是指向NDIS_HANDLE的指针,所以,调用NdisAllocateBufferPool时的参数为MyPoolHandle。
后面一种情况,既然把MyPoolHandle定义为NDIS_HANDLE,就不须用ExAllocatePool分配空间。调用NdisAllocateBufferPool时的参数为(&MyPoolHandle)。
m_lam12
驱动牛犊
驱动牛犊
  • 注册日期2001-07-19
  • 最后登录2002-11-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-10-25 20:06
对的
李安明
liuhb
驱动牛犊
驱动牛犊
  • 注册日期2001-09-25
  • 最后登录2002-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-10-26 11:27
从语法上讲是这样,不过他那样做其实从结果上看是可行的。
混在深圳
游客

返回顶部